home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 October: Mac OS SDK / Dev.CD Oct 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / CIncludes / QuickTimeComponents.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-08-12  |  115.7 KB  |  3,072 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        QuickTimeComponents.h
  3.  
  4.      Contains:    QuickTime Interfaces.
  5.  
  6.      Version:    Technology:    QuickTime 2.5
  7.                  Release:    Universal Interfaces 3.0.1
  8.  
  9.      Copyright:    © 1990-1997 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. */
  18. #ifndef __QUICKTIMECOMPONENTS__
  19. #define __QUICKTIMECOMPONENTS__
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. #ifndef __MIXEDMODE__
  25. #include <MixedMode.h>
  26. #endif
  27. #ifndef __COMPONENTS__
  28. #include <Components.h>
  29. #endif
  30. #ifndef __IMAGECOMPRESSION__
  31. #include <ImageCompression.h>
  32. #endif
  33. #ifndef __MOVIES__
  34. #include <Movies.h>
  35. #endif
  36. #ifndef __QUICKDRAW__
  37. #include <Quickdraw.h>
  38. #endif
  39. #ifndef __VIDEO__
  40. #include <Video.h>
  41. #endif
  42. #ifndef __SOUND__
  43. #include <Sound.h>
  44. #endif
  45. #ifndef __QUICKTIMEMUSIC__
  46. #include <QuickTimeMusic.h>
  47. #endif
  48.  
  49.  
  50.  
  51. #if PRAGMA_ONCE
  52. #pragma once
  53. #endif
  54.  
  55. #ifdef __cplusplus
  56. extern "C" {
  57. #endif
  58.  
  59. #if PRAGMA_IMPORT
  60. #pragma import on
  61. #endif
  62.  
  63. #if PRAGMA_STRUCT_ALIGN
  64.     #pragma options align=mac68k
  65. #elif PRAGMA_STRUCT_PACKPUSH
  66.     #pragma pack(push, 2)
  67. #elif PRAGMA_STRUCT_PACK
  68.     #pragma pack(2)
  69. #endif
  70.  
  71.  
  72. enum {
  73.     clockComponentType            = FOUR_CHAR_CODE('clok'),
  74.     systemTickClock                = FOUR_CHAR_CODE('tick'),        /* subtype: 60ths since boot        */
  75.     systemSecondClock            = FOUR_CHAR_CODE('seco'),        /* subtype: seconds since 1904        */
  76.     systemMillisecondClock        = FOUR_CHAR_CODE('mill'),        /* subtype: 1000ths since boot        */
  77.     systemMicrosecondClock        = FOUR_CHAR_CODE('micr')        /* subtype: 1000000ths since boot    */
  78. };
  79.  
  80.  
  81. enum {
  82.     kClockRateIsLinear            = 1,
  83.     kClockImplementsCallBacks    = 2
  84. };
  85.  
  86. #if OLDROUTINENAMES
  87. #define GetClockTime(aClock, out) ClockGetTime(aClock, out)
  88. #endif
  89. /** These are Clock procedures **/
  90. EXTERN_API( ComponentResult )
  91. ClockGetTime                    (ComponentInstance         aClock,
  92.                                  TimeRecord *            out)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  93.  
  94.  
  95. EXTERN_API( QTCallBack )
  96. ClockNewCallBack                (ComponentInstance         aClock,
  97.                                  TimeBase                 tb,
  98.                                  short                     callBackType)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  99.  
  100. EXTERN_API( ComponentResult )
  101. ClockDisposeCallBack            (ComponentInstance         aClock,
  102.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  103.  
  104. EXTERN_API( ComponentResult )
  105. ClockCallMeWhen                    (ComponentInstance         aClock,
  106.                                  QTCallBack             cb,
  107.                                  long                     param1,
  108.                                  long                     param2,
  109.                                  long                     param3)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0004, 0x7000, 0xA82A);
  110.  
  111. EXTERN_API( ComponentResult )
  112. ClockCancelCallBack                (ComponentInstance         aClock,
  113.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  114.  
  115. EXTERN_API( ComponentResult )
  116. ClockRateChanged                (ComponentInstance         aClock,
  117.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  118.  
  119. EXTERN_API( ComponentResult )
  120. ClockTimeChanged                (ComponentInstance         aClock,
  121.                                  QTCallBack             cb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  122.  
  123. EXTERN_API( ComponentResult )
  124. ClockSetTimeBase                (ComponentInstance         aClock,
  125.                                  TimeBase                 tb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  126.  
  127. EXTERN_API( ComponentResult )
  128. ClockStartStopChanged            (ComponentInstance         aClock,
  129.                                  QTCallBack             cb,
  130.                                  Boolean                 startChanged,
  131.                                  Boolean                 stopChanged)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  132.  
  133. EXTERN_API( ComponentResult )
  134. ClockGetRate                    (ComponentInstance         aClock,
  135.                                  Fixed *                rate)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  136.  
  137.  
  138.  
  139.  
  140.  
  141. enum {
  142.     StandardCompressionType        = FOUR_CHAR_CODE('scdi'),
  143.     StandardCompressionSubType    = FOUR_CHAR_CODE('imag')
  144. };
  145.  
  146.  
  147. typedef CALLBACK_API( Boolean , SCModalFilterProcPtr )(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refcon);
  148. typedef CALLBACK_API( short , SCModalHookProcPtr )(DialogPtr theDialog, short itemHit, void *params, long refcon);
  149. typedef STACK_UPP_TYPE(SCModalFilterProcPtr)                     SCModalFilterUPP;
  150. typedef STACK_UPP_TYPE(SCModalHookProcPtr)                         SCModalHookUPP;
  151. /*    Preference flags.*/
  152.  
  153. enum {
  154.     scListEveryCodec            = 1L << 1,
  155.     scAllowZeroFrameRate        = 1L << 2,
  156.     scAllowZeroKeyFrameRate        = 1L << 3,
  157.     scShowBestDepth                = 1L << 4,
  158.     scUseMovableModal            = 1L << 5
  159. };
  160.  
  161.  
  162. /*    Possible test flags for setting test image.*/
  163.  
  164. enum {
  165.     scPreferCropping            = 1 << 0,
  166.     scPreferScaling                = 1 << 1,
  167.     scPreferScalingAndCropping    = scPreferScaling | scPreferCropping
  168. };
  169.  
  170.  
  171. /*    Dimensions of the image preview box.*/
  172.  
  173. enum {
  174.     scTestImageWidth            = 80,
  175.     scTestImageHeight            = 80
  176. };
  177.  
  178. /*    Possible items returned by hookProc.*/
  179.  
  180. enum {
  181.     scOKItem                    = 1,
  182.     scCancelItem                = 2,
  183.     scCustomItem                = 3
  184. };
  185.  
  186. /*    Result returned when user cancelled.*/
  187.  
  188. enum {
  189.     scUserCancelled                = 1
  190. };
  191.  
  192.  
  193.  
  194. /* Component selectors*/
  195.  
  196. enum {
  197.     scPositionRect                = 2,
  198.     scPositionDialog            = 3,
  199.     scSetTestImagePictHandle    = 4,
  200.     scSetTestImagePictFile        = 5,
  201.     scSetTestImagePixMap        = 6,
  202.     scGetBestDeviceRect            = 7,
  203.     scRequestImageSettings        = 10,
  204.     scCompressImage                = 11,
  205.     scCompressPicture            = 12,
  206.     scCompressPictureFile        = 13,
  207.     scRequestSequenceSettings    = 14,
  208.     scCompressSequenceBegin        = 15,
  209.     scCompressSequenceFrame        = 16,
  210.     scCompressSequenceEnd        = 17,
  211.     scDefaultPictHandleSettings    = 18,
  212.     scDefaultPictFileSettings    = 19,
  213.     scDefaultPixMapSettings        = 20,
  214.     scGetInfo                    = 21,
  215.     scSetInfo                    = 22,
  216.     scNewGWorld                    = 23
  217. };
  218.  
  219. /*    Get/SetInfo structures.*/
  220.  
  221. struct SCSpatialSettings {
  222.     CodecType                         codecType;
  223.     CodecComponent                     codec;
  224.     short                             depth;
  225.     CodecQ                             spatialQuality;
  226. };
  227. typedef struct SCSpatialSettings SCSpatialSettings;
  228.  
  229. struct SCTemporalSettings {
  230.     CodecQ                             temporalQuality;
  231.     Fixed                             frameRate;
  232.     long                             keyFrameRate;
  233. };
  234. typedef struct SCTemporalSettings SCTemporalSettings;
  235.  
  236. struct SCDataRateSettings {
  237.     long                             dataRate;
  238.     long                             frameDuration;
  239.     CodecQ                             minSpatialQuality;
  240.     CodecQ                             minTemporalQuality;
  241. };
  242. typedef struct SCDataRateSettings SCDataRateSettings;
  243.  
  244. struct SCExtendedProcs {
  245.     SCModalFilterUPP                 filterProc;
  246.     SCModalHookUPP                     hookProc;
  247.     long                             refcon;
  248.     Str31                             customName;
  249. };
  250. typedef struct SCExtendedProcs SCExtendedProcs;
  251.  
  252. /*    Get/SetInfo selectors*/
  253.  
  254. enum {
  255.     scSpatialSettingsType        = FOUR_CHAR_CODE('sptl'),        /* pointer to SCSpatialSettings struct*/
  256.     scTemporalSettingsType        = FOUR_CHAR_CODE('tprl'),        /* pointer to SCTemporalSettings struct*/
  257.     scDataRateSettingsType        = FOUR_CHAR_CODE('drat'),        /* pointer to SCDataRateSettings struct*/
  258.     scColorTableType            = FOUR_CHAR_CODE('clut'),        /* pointer to CTabHandle*/
  259.     scProgressProcType            = FOUR_CHAR_CODE('prog'),        /* pointer to ProgressRecord struct*/
  260.     scExtendedProcsType            = FOUR_CHAR_CODE('xprc'),        /* pointer to SCExtendedProcs struct*/
  261.     scPreferenceFlagsType        = FOUR_CHAR_CODE('pref'),        /* pointer to long*/
  262.     scSettingsStateType            = FOUR_CHAR_CODE('ssta'),        /* pointer to Handle*/
  263.     scSequenceIDType            = FOUR_CHAR_CODE('sequ'),        /* pointer to ImageSequence*/
  264.     scWindowPositionType        = FOUR_CHAR_CODE('wndw'),        /* pointer to Point*/
  265.     scCodecFlagsType            = FOUR_CHAR_CODE('cflg'),        /* pointer to CodecFlags*/
  266.     scCodecSettingsType            = FOUR_CHAR_CODE('cdec'),        /* pointer to Handle*/
  267.     scForceKeyValueType            = FOUR_CHAR_CODE('ksim')        /* pointer to long*/
  268. };
  269.  
  270. /*    scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.*/
  271.  
  272.  
  273. struct SCParams {
  274.     long                             flags;
  275.     CodecType                         theCodecType;
  276.     CodecComponent                     theCodec;
  277.     CodecQ                             spatialQuality;
  278.     CodecQ                             temporalQuality;
  279.     short                             depth;
  280.     Fixed                             frameRate;
  281.     long                             keyFrameRate;
  282.     long                             reserved1;
  283.     long                             reserved2;
  284. };
  285. typedef struct SCParams SCParams;
  286.  
  287.  
  288. enum {
  289.     scGetCompression            = 1,
  290.     scShowMotionSettings        = 1L << 0,
  291.     scSettingsChangedItem        = -1
  292. };
  293.  
  294.  
  295. enum {
  296.     scCompressFlagIgnoreIdenticalFrames = 1
  297. };
  298.  
  299.  
  300. #define SCGetCompression(ci, params, where) SCGetCompressionExtended(ci,params,where,0,0,0,0)
  301. /** These are Progress procedures **/
  302. EXTERN_API( ComponentResult )
  303. SCGetCompressionExtended        (ComponentInstance         ci,
  304.                                  SCParams *                params,
  305.                                  Point                     where,
  306.                                  SCModalFilterUPP         filterProc,
  307.                                  SCModalHookUPP         hookProc,
  308.                                  long                     refcon,
  309.                                  StringPtr                 customName)                            FIVEWORDINLINE(0x2F3C, 0x0018, 0x0001, 0x7000, 0xA82A);
  310.  
  311. EXTERN_API( ComponentResult )
  312. SCPositionRect                    (ComponentInstance         ci,
  313.                                  Rect *                    rp,
  314.                                  Point *                where)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  315.  
  316. EXTERN_API( ComponentResult )
  317. SCPositionDialog                (ComponentInstance         ci,
  318.                                  short                     id,
  319.                                  Point *                where)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0003, 0x7000, 0xA82A);
  320.  
  321. EXTERN_API( ComponentResult )
  322. SCSetTestImagePictHandle        (ComponentInstance         ci,
  323.                                  PicHandle                 testPict,
  324.                                  Rect *                    testRect,
  325.                                  short                     testFlags)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0004, 0x7000, 0xA82A);
  326.  
  327. EXTERN_API( ComponentResult )
  328. SCSetTestImagePictFile            (ComponentInstance         ci,
  329.                                  short                     testFileRef,
  330.                                  Rect *                    testRect,
  331.                                  short                     testFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  332.  
  333. EXTERN_API( ComponentResult )
  334. SCSetTestImagePixMap            (ComponentInstance         ci,
  335.                                  PixMapHandle             testPixMap,
  336.                                  Rect *                    testRect,
  337.                                  short                     testFlags)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0006, 0x7000, 0xA82A);
  338.  
  339. EXTERN_API( ComponentResult )
  340. SCGetBestDeviceRect                (ComponentInstance         ci,
  341.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  342.  
  343.  
  344. EXTERN_API( ComponentResult )
  345. SCRequestImageSettings            (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A);
  346.  
  347. EXTERN_API( ComponentResult )
  348. SCCompressImage                    (ComponentInstance         ci,
  349.                                  PixMapHandle             src,
  350.                                  const Rect *            srcRect,
  351.                                  ImageDescriptionHandle * desc,
  352.                                  Handle *                data)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x000B, 0x7000, 0xA82A);
  353.  
  354. EXTERN_API( ComponentResult )
  355. SCCompressPicture                (ComponentInstance         ci,
  356.                                  PicHandle                 srcPicture,
  357.                                  PicHandle                 dstPicture)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  358.  
  359. EXTERN_API( ComponentResult )
  360. SCCompressPictureFile            (ComponentInstance         ci,
  361.                                  short                     srcRefNum,
  362.                                  short                     dstRefNum)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  363.  
  364. EXTERN_API( ComponentResult )
  365. SCRequestSequenceSettings        (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000E, 0x7000, 0xA82A);
  366.  
  367. EXTERN_API( ComponentResult )
  368. SCCompressSequenceBegin            (ComponentInstance         ci,
  369.                                  PixMapHandle             src,
  370.                                  const Rect *            srcRect,
  371.                                  ImageDescriptionHandle * desc)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x000F, 0x7000, 0xA82A);
  372.  
  373. EXTERN_API( ComponentResult )
  374. SCCompressSequenceFrame            (ComponentInstance         ci,
  375.                                  PixMapHandle             src,
  376.                                  const Rect *            srcRect,
  377.                                  Handle *                data,
  378.                                  long *                    dataSize,
  379.                                  short *                notSyncFlag)                        FIVEWORDINLINE(0x2F3C, 0x0014, 0x0010, 0x7000, 0xA82A);
  380.  
  381. EXTERN_API( ComponentResult )
  382. SCCompressSequenceEnd            (ComponentInstance         ci)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  383.  
  384. EXTERN_API( ComponentResult )
  385. SCDefaultPictHandleSettings        (ComponentInstance         ci,
  386.                                  PicHandle                 srcPicture,
  387.                                  short                     motion)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0012, 0x7000, 0xA82A);
  388.  
  389. EXTERN_API( ComponentResult )
  390. SCDefaultPictFileSettings        (ComponentInstance         ci,
  391.                                  short                     srcRef,
  392.                                  short                     motion)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  393.  
  394. EXTERN_API( ComponentResult )
  395. SCDefaultPixMapSettings            (ComponentInstance         ci,
  396.                                  PixMapHandle             src,
  397.                                  short                     motion)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x0014, 0x7000, 0xA82A);
  398.  
  399. EXTERN_API( ComponentResult )
  400. SCGetInfo                        (ComponentInstance         ci,
  401.                                  OSType                 infoType,
  402.                                  void *                    info)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0015, 0x7000, 0xA82A);
  403.  
  404. EXTERN_API( ComponentResult )
  405. SCSetInfo                        (ComponentInstance         ci,
  406.                                  OSType                 infoType,
  407.                                  void *                    info)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  408.  
  409. EXTERN_API( ComponentResult )
  410. SCNewGWorld                        (ComponentInstance         ci,
  411.                                  GWorldPtr *            gwp,
  412.                                  Rect *                    rp,
  413.                                  GWorldFlags             flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  414.  
  415. EXTERN_API( ComponentResult )
  416. SCSetCompressFlags                (ComponentInstance         ci,
  417.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  418.  
  419. EXTERN_API( ComponentResult )
  420. SCGetCompressFlags                (ComponentInstance         ci,
  421.                                  long *                    flags)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  422.  
  423.  
  424.  
  425.  
  426. enum {
  427.     TweenComponentType            = FOUR_CHAR_CODE('twen')
  428. };
  429.  
  430. typedef ComponentInstance                 TweenerComponent;
  431. typedef struct TweenRecord                 TweenRecord;
  432. typedef CALLBACK_API( ComponentResult , TweenerDataProcPtr )(TweenRecord *tr, void *tweenData, long tweenDataSize, long dataDescriptionSeed, Handle dataDescription, ICMCompletionProcRecordPtr asyncCompletionProc, ProcPtr transferProc, void *refCon);
  433. typedef STACK_UPP_TYPE(TweenerDataProcPtr)                         TweenerDataUPP;
  434. struct TweenRecord {
  435.     long                             version;
  436.  
  437.     QTAtomContainer                 container;
  438.     QTAtom                             tweenAtom;
  439.     QTAtom                             dataAtom;
  440.     Fixed                             percent;
  441.  
  442.     TweenerDataUPP                     dataProc;
  443.  
  444.     void *                            private1;
  445.     void *                            private2;
  446. };
  447.  
  448. EXTERN_API( ComponentResult )
  449. TweenerInitialize                (TweenerComponent         tc,
  450.                                  QTAtomContainer         container,
  451.                                  QTAtom                 tweenAtom,
  452.                                  QTAtom                 dataAtom)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  453.  
  454. EXTERN_API( ComponentResult )
  455. TweenerDoTween                    (TweenerComponent         tc,
  456.                                  TweenRecord *            tr)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A);
  457.  
  458. EXTERN_API( ComponentResult )
  459. TweenerReset                    (TweenerComponent         tc)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A);
  460.  
  461.  
  462.  
  463.  
  464. enum {
  465.     TCSourceRefNameType            = FOUR_CHAR_CODE('name')
  466. };
  467.  
  468.  
  469. enum {
  470.     tcDropFrame                    = 1 << 0,
  471.     tc24HourMax                    = 1 << 1,
  472.     tcNegTimesOK                = 1 << 2,
  473.     tcCounter                    = 1 << 3
  474. };
  475.  
  476. struct TimeCodeDef {
  477.     long                             flags;                        /* drop-frame, etc.*/
  478.     TimeScale                         fTimeScale;                    /* time scale of frameDuration (eg. 2997)*/
  479.     TimeValue                         frameDuration;                /* duration of each frame (eg. 100)*/
  480.     UInt8                             numFrames;                    /* frames/sec for timecode (eg. 30) OR frames/tick for counter mode*/
  481.     UInt8                             padding;                    /* unused padding byte*/
  482. };
  483. typedef struct TimeCodeDef TimeCodeDef;
  484.  
  485.  
  486. enum {
  487.     tctNegFlag                    = 0x80                            /* negative bit is in minutes*/
  488. };
  489.  
  490. struct TimeCodeTime {
  491.     UInt8                             hours;
  492.     UInt8                             minutes;
  493.     UInt8                             seconds;
  494.     UInt8                             frames;
  495. };
  496. typedef struct TimeCodeTime TimeCodeTime;
  497.  
  498. struct TimeCodeCounter {
  499.     long                             counter;
  500. };
  501. typedef struct TimeCodeCounter TimeCodeCounter;
  502.  
  503. union TimeCodeRecord {
  504.     TimeCodeTime                     t;
  505.     TimeCodeCounter                 c;
  506. };
  507. typedef union TimeCodeRecord TimeCodeRecord;
  508.  
  509. struct TimeCodeDescription {
  510.     long                             descSize;                    /* standard sample description header*/
  511.     long                             dataFormat;
  512.     long                             resvd1;
  513.     short                             resvd2;
  514.     short                             dataRefIndex;
  515.     long                             flags;                        /* timecode specific stuff*/
  516.     TimeCodeDef                     timeCodeDef;
  517.     long                             srcRef[1];
  518. };
  519. typedef struct TimeCodeDescription TimeCodeDescription;
  520.  
  521. typedef TimeCodeDescription *            TimeCodeDescriptionPtr;
  522. typedef TimeCodeDescriptionPtr *        TimeCodeDescriptionHandle;
  523.  
  524. enum {
  525.     tcdfShowTimeCode            = 1 << 0
  526. };
  527.  
  528.  
  529. struct TCTextOptions {
  530.     short                             txFont;
  531.     short                             txFace;
  532.     short                             txSize;
  533.     RGBColor                         foreColor;
  534.     RGBColor                         backColor;
  535. };
  536. typedef struct TCTextOptions TCTextOptions;
  537.  
  538. typedef TCTextOptions *                    TCTextOptionsPtr;
  539. EXTERN_API( HandlerError )
  540. TCGetCurrentTimeCode            (MediaHandler             mh,
  541.                                  long *                    frameNum,
  542.                                  TimeCodeDef *            tcdef,
  543.                                  TimeCodeRecord *        tcrec,
  544.                                  UserData *                srcRefH)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0101, 0x7000, 0xA82A);
  545.  
  546. EXTERN_API( HandlerError )
  547. TCGetTimeCodeAtTime                (MediaHandler             mh,
  548.                                  TimeValue                 mediaTime,
  549.                                  long *                    frameNum,
  550.                                  TimeCodeDef *            tcdef,
  551.                                  TimeCodeRecord *        tcdata,
  552.                                  UserData *                srcRefH)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0102, 0x7000, 0xA82A);
  553.  
  554. EXTERN_API( HandlerError )
  555. TCTimeCodeToString                (MediaHandler             mh,
  556.                                  TimeCodeDef *            tcdef,
  557.                                  TimeCodeRecord *        tcrec,
  558.                                  StringPtr                 tcStr)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  559.  
  560. EXTERN_API( HandlerError )
  561. TCTimeCodeToFrameNumber            (MediaHandler             mh,
  562.                                  TimeCodeDef *            tcdef,
  563.                                  TimeCodeRecord *        tcrec,
  564.                                  long *                    frameNumber)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0104, 0x7000, 0xA82A);
  565.  
  566. EXTERN_API( HandlerError )
  567. TCFrameNumberToTimeCode            (MediaHandler             mh,
  568.                                  long                     frameNumber,
  569.                                  TimeCodeDef *            tcdef,
  570.                                  TimeCodeRecord *        tcrec)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
  571.  
  572. EXTERN_API( HandlerError )
  573. TCGetSourceRef                    (MediaHandler             mh,
  574.                                  TimeCodeDescriptionHandle  tcdH,
  575.                                  UserData *                srefH)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  576.  
  577. EXTERN_API( HandlerError )
  578. TCSetSourceRef                    (MediaHandler             mh,
  579.                                  TimeCodeDescriptionHandle  tcdH,
  580.                                  UserData                 srefH)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  581.  
  582. EXTERN_API( HandlerError )
  583. TCSetTimeCodeFlags                (MediaHandler             mh,
  584.                                  long                     flags,
  585.                                  long                     flagsMask)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  586.  
  587. EXTERN_API( HandlerError )
  588. TCGetTimeCodeFlags                (MediaHandler             mh,
  589.                                  long *                    flags)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  590.  
  591. EXTERN_API( HandlerError )
  592. TCSetDisplayOptions                (MediaHandler             mh,
  593.                                  TCTextOptionsPtr         textOptions)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  594.  
  595. EXTERN_API( HandlerError )
  596. TCGetDisplayOptions                (MediaHandler             mh,
  597.                                  TCTextOptionsPtr         textOptions)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  598.  
  599.  
  600.  
  601. typedef ComponentInstance                 MovieImportComponent;
  602. typedef ComponentInstance                 MovieExportComponent;
  603.  
  604. enum {
  605.     MovieImportType                = FOUR_CHAR_CODE('eat '),
  606.     MovieExportType                = FOUR_CHAR_CODE('spit')
  607. };
  608.  
  609.  
  610. enum {
  611.     canMovieImportHandles        = 1 << 0,
  612.     canMovieImportFiles            = 1 << 1,
  613.     hasMovieImportUserInterface    = 1 << 2,
  614.     canMovieExportHandles        = 1 << 3,
  615.     canMovieExportFiles            = 1 << 4,
  616.     hasMovieExportUserInterface    = 1 << 5,
  617.     dontAutoFileMovieImport        = 1 << 6,
  618.     canMovieExportAuxDataHandle    = 1 << 7,
  619.     canMovieImportValidateHandles = 1 << 8,
  620.     canMovieImportValidateFile    = 1 << 9,
  621.     dontRegisterWithEasyOpen    = 1 << 10,
  622.     canMovieImportInPlace        = 1 << 11,
  623.     movieImportSubTypeIsFileExtension = 1 << 12
  624. };
  625.  
  626.  
  627. enum {
  628.     movieImportCreateTrack        = 1,
  629.     movieImportInParallel        = 2,
  630.     movieImportMustUseTrack        = 4
  631. };
  632.  
  633.  
  634. enum {
  635.     movieImportResultUsedMultipleTracks = 8
  636. };
  637.  
  638.  
  639. enum {
  640.     kMovieExportTextOnly        = 0,
  641.     kMovieExportAbsoluteTime    = 1,
  642.     kMovieExportRelativeTime    = 2
  643. };
  644.  
  645.  
  646. enum {
  647.     kMIDIImportSilenceBefore    = 1 << 0,
  648.     kMIDIImportSilenceAfter        = 1 << 1,
  649.     kMIDIImport20Playable        = 1 << 2,
  650.     kMIDIImportWantLyrics        = 1 << 3
  651. };
  652.  
  653. EXTERN_API( ComponentResult )
  654. MovieImportHandle                (MovieImportComponent     ci,
  655.                                  Handle                 dataH,
  656.                                  Movie                     theMovie,
  657.                                  Track                     targetTrack,
  658.                                  Track *                usedTrack,
  659.                                  TimeValue                 atTime,
  660.                                  TimeValue *            addedDuration,
  661.                                  long                     inFlags,
  662.                                  long *                    outFlags)                            FIVEWORDINLINE(0x2F3C, 0x0020, 0x0001, 0x7000, 0xA82A);
  663.  
  664. EXTERN_API( ComponentResult )
  665. MovieImportFile                    (MovieImportComponent     ci,
  666.                                  const FSSpec *            theFile,
  667.                                  Movie                     theMovie,
  668.                                  Track                     targetTrack,
  669.                                  Track *                usedTrack,
  670.                                  TimeValue                 atTime,
  671.                                  TimeValue *            addedDuration,
  672.                                  long                     inFlags,
  673.                                  long *                    outFlags)                            FIVEWORDINLINE(0x2F3C, 0x0020, 0x0002, 0x7000, 0xA82A);
  674.  
  675. EXTERN_API( ComponentResult )
  676. MovieImportSetSampleDuration    (MovieImportComponent     ci,
  677.                                  TimeValue                 duration,
  678.                                  TimeScale                 scale)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  679.  
  680. EXTERN_API( ComponentResult )
  681. MovieImportSetSampleDescription    (MovieImportComponent     ci,
  682.                                  SampleDescriptionHandle  desc,
  683.                                  OSType                 mediaType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  684.  
  685. EXTERN_API( ComponentResult )
  686. MovieImportSetMediaFile            (MovieImportComponent     ci,
  687.                                  AliasHandle             alias)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  688.  
  689. EXTERN_API( ComponentResult )
  690. MovieImportSetDimensions        (MovieImportComponent     ci,
  691.                                  Fixed                     width,
  692.                                  Fixed                     height)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  693.  
  694. EXTERN_API( ComponentResult )
  695. MovieImportSetChunkSize            (MovieImportComponent     ci,
  696.                                  long                     chunkSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  697.  
  698. EXTERN_API( ComponentResult )
  699. MovieImportSetProgressProc        (MovieImportComponent     ci,
  700.                                  MovieProgressUPP         proc,
  701.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A);
  702.  
  703. EXTERN_API( ComponentResult )
  704. MovieImportSetAuxiliaryData        (MovieImportComponent     ci,
  705.                                  Handle                 data,
  706.                                  OSType                 handleType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  707.  
  708. EXTERN_API( ComponentResult )
  709. MovieImportSetFromScrap            (MovieImportComponent     ci,
  710.                                  Boolean                 fromScrap)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  711.  
  712. EXTERN_API( ComponentResult )
  713. MovieImportDoUserDialog            (MovieImportComponent     ci,
  714.                                  const FSSpec *            theFile,
  715.                                  Handle                 theData,
  716.                                  Boolean *                canceled)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  717.  
  718. EXTERN_API( ComponentResult )
  719. MovieImportSetDuration            (MovieImportComponent     ci,
  720.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  721.  
  722. EXTERN_API( ComponentResult )
  723. MovieImportGetAuxiliaryDataType    (MovieImportComponent     ci,
  724.                                  OSType *                auxType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  725.  
  726. EXTERN_API( ComponentResult )
  727. MovieImportValidate                (MovieImportComponent     ci,
  728.                                  const FSSpec *            theFile,
  729.                                  Handle                 theData,
  730.                                  Boolean *                valid)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x000E, 0x7000, 0xA82A);
  731.  
  732. EXTERN_API( ComponentResult )
  733. MovieImportGetFileType            (MovieImportComponent     ci,
  734.                                  OSType *                fileType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  735.  
  736. EXTERN_API( ComponentResult )
  737. MovieImportDataRef                (MovieImportComponent     ci,
  738.                                  Handle                 dataRef,
  739.                                  OSType                 dataRefType,
  740.                                  Movie                     theMovie,
  741.                                  Track                     targetTrack,
  742.                                  Track *                usedTrack,
  743.                                  TimeValue                 atTime,
  744.                                  TimeValue *            addedDuration,
  745.                                  long                     inFlags,
  746.                                  long *                    outFlags)                            FIVEWORDINLINE(0x2F3C, 0x0024, 0x0010, 0x7000, 0xA82A);
  747.  
  748. EXTERN_API( ComponentResult )
  749. MovieImportGetSampleDescription    (MovieImportComponent     ci,
  750.                                  SampleDescriptionHandle * desc,
  751.                                  OSType *                mediaType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0011, 0x7000, 0xA82A);
  752.  
  753. EXTERN_API( ComponentResult )
  754. MovieExportToHandle                (MovieExportComponent     ci,
  755.                                  Handle                 dataH,
  756.                                  Movie                     theMovie,
  757.                                  Track                     onlyThisTrack,
  758.                                  TimeValue                 startTime,
  759.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0080, 0x7000, 0xA82A);
  760.  
  761. EXTERN_API( ComponentResult )
  762. MovieExportToFile                (MovieExportComponent     ci,
  763.                                  const FSSpec *            theFile,
  764.                                  Movie                     theMovie,
  765.                                  Track                     onlyThisTrack,
  766.                                  TimeValue                 startTime,
  767.                                  TimeValue                 duration)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0081, 0x7000, 0xA82A);
  768.  
  769. EXTERN_API( ComponentResult )
  770. MovieExportGetAuxiliaryData        (MovieExportComponent     ci,
  771.                                  Handle                 dataH,
  772.                                  OSType *                handleType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0083, 0x7000, 0xA82A);
  773.  
  774. EXTERN_API( ComponentResult )
  775. MovieExportSetProgressProc        (MovieExportComponent     ci,
  776.                                  MovieProgressUPP         proc,
  777.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0084, 0x7000, 0xA82A);
  778.  
  779. EXTERN_API( ComponentResult )
  780. MovieExportSetSampleDescription    (MovieExportComponent     ci,
  781.                                  SampleDescriptionHandle  desc,
  782.                                  OSType                 mediaType)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0085, 0x7000, 0xA82A);
  783.  
  784. EXTERN_API( ComponentResult )
  785. MovieExportDoUserDialog            (MovieExportComponent     ci,
  786.                                  Movie                     theMovie,
  787.                                  Track                     onlyThisTrack,
  788.                                  TimeValue                 startTime,
  789.                                  TimeValue                 duration,
  790.                                  Boolean *                canceled)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0086, 0x7000, 0xA82A);
  791.  
  792. EXTERN_API( ComponentResult )
  793. MovieExportGetCreatorType        (MovieExportComponent     ci,
  794.                                  OSType *                creator)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  795.  
  796.  
  797. /* Text Export Display Info data structure*/
  798. struct TextDisplayData {
  799.     long                             displayFlags;
  800.     long                             textJustification;
  801.     RGBColor                         bgColor;
  802.     Rect                             textBox;
  803.  
  804.     short                             beginHilite;
  805.     short                             endHilite;
  806.     RGBColor                         hiliteColor;
  807.     Boolean                         doHiliteColor;
  808.     SInt8                             filler;
  809.     TimeValue                         scrollDelayDur;
  810.     Point                             dropShadowOffset;
  811.     short                             dropShadowTransparency;
  812. };
  813. typedef struct TextDisplayData TextDisplayData;
  814.  
  815. typedef ComponentInstance                 TextExportComponent;
  816. EXTERN_API( ComponentResult )
  817. TextExportGetDisplayData        (TextExportComponent     ci,
  818.                                  TextDisplayData *        textDisplay)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  819.  
  820. EXTERN_API( ComponentResult )
  821. TextExportGetTimeFraction        (TextExportComponent     ci,
  822.                                  long *                    movieTimeFraction)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  823.  
  824. EXTERN_API( ComponentResult )
  825. TextExportSetTimeFraction        (TextExportComponent     ci,
  826.                                  long                     movieTimeFraction)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  827.  
  828. EXTERN_API( ComponentResult )
  829. TextExportGetSettings            (TextExportComponent     ci,
  830.                                  long *                    setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  831.  
  832. EXTERN_API( ComponentResult )
  833. TextExportSetSettings            (TextExportComponent     ci,
  834.                                  long                     setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  835.  
  836.  
  837. EXTERN_API( ComponentResult )
  838. MIDIImportGetSettings            (TextExportComponent     ci,
  839.                                  long *                    setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  840.  
  841. EXTERN_API( ComponentResult )
  842. MIDIImportSetSettings            (TextExportComponent     ci,
  843.                                  long                     setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  844.  
  845.  
  846.  
  847.  
  848.  
  849. /***************
  850.  
  851.     File Preview Components
  852.  
  853. ***************/
  854. typedef ComponentInstance                 pnotComponent;
  855.  
  856. enum {
  857.     pnotComponentWantsEvents    = 1,
  858.     pnotComponentNeedsNoCache    = 2
  859. };
  860.  
  861.  
  862. enum {
  863.     ShowFilePreviewComponentType = FOUR_CHAR_CODE('pnot'),
  864.     CreateFilePreviewComponentType = FOUR_CHAR_CODE('pmak')
  865. };
  866.  
  867. EXTERN_API( ComponentResult )
  868. PreviewShowData                    (pnotComponent             p,
  869.                                  OSType                 dataType,
  870.                                  Handle                 data,
  871.                                  const Rect *            inHere)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  872.  
  873. EXTERN_API( ComponentResult )
  874. PreviewMakePreview                (pnotComponent             p,
  875.                                  OSType *                previewType,
  876.                                  Handle *                previewResult,
  877.                                  const FSSpec *            sourceFile,
  878.                                  ICMProgressProcRecordPtr  progress)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  879.  
  880. EXTERN_API( ComponentResult )
  881. PreviewMakePreviewReference        (pnotComponent             p,
  882.                                  OSType *                previewType,
  883.                                  short *                resID,
  884.                                  const FSSpec *            sourceFile)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0003, 0x7000, 0xA82A);
  885.  
  886. EXTERN_API( ComponentResult )
  887. PreviewEvent                    (pnotComponent             p,
  888.                                  EventRecord *            e,
  889.                                  Boolean *                handledEvent)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  890.  
  891.  
  892.  
  893.  
  894.  
  895. typedef CALLBACK_API( void , DataHCompletionProcPtr )(Ptr request, long refcon, OSErr err);
  896. typedef STACK_UPP_TYPE(DataHCompletionProcPtr)                     DataHCompletionUPP;
  897.  
  898.  
  899. enum {
  900.     kDataHCanRead                = 1L << 0,
  901.     kDataHSpecialRead            = 1L << 1,
  902.     kDataHSpecialReadFile        = 1L << 2,
  903.     kDataHCanWrite                = 1L << 3,
  904.     kDataHSpecialWrite            = 1 << 4,
  905.     kDataHSpecialWriteFile        = 1 << 5,
  906.     kDataHCanStreamingWrite        = 1 << 6,
  907.     kDataHMustCheckDataRef        = 1 << 7
  908. };
  909.  
  910. struct DataHVolumeListRecord {
  911.     short                             vRefNum;
  912.     long                             flags;
  913. };
  914. typedef struct DataHVolumeListRecord DataHVolumeListRecord;
  915.  
  916. typedef DataHVolumeListRecord *            DataHVolumeListPtr;
  917. typedef DataHVolumeListPtr *            DataHVolumeList;
  918.  
  919. enum {
  920.     kDataHExtendedSchedule        = FOUR_CHAR_CODE('xtnd')
  921. };
  922.  
  923. struct DataHScheduleRecord {
  924.     TimeRecord                         timeNeededBy;
  925.     long                             extendedID;                    /* always is kDataHExtendedSchedule*/
  926.     long                             extendedVers;                /* always set to 0*/
  927.     Fixed                             priority;                    /* 100.0 or more means must have. lower numbers…*/
  928. };
  929. typedef struct DataHScheduleRecord DataHScheduleRecord;
  930.  
  931. typedef DataHScheduleRecord *            DataHSchedulePtr;
  932.  
  933.  
  934. EXTERN_API( ComponentResult )
  935. DataHGetData                    (DataHandler             dh,
  936.                                  Handle                 h,
  937.                                  long                     hOffset,
  938.                                  long                     offset,
  939.                                  long                     size)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  940.  
  941. EXTERN_API( ComponentResult )
  942. DataHPutData                    (DataHandler             dh,
  943.                                  Handle                 h,
  944.                                  long                     hOffset,
  945.                                  long *                    offset,
  946.                                  long                     size)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0003, 0x7000, 0xA82A);
  947.  
  948. EXTERN_API( ComponentResult )
  949. DataHFlushData                    (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A);
  950.  
  951. EXTERN_API( ComponentResult )
  952. DataHOpenForWrite                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  953.  
  954. EXTERN_API( ComponentResult )
  955. DataHCloseForWrite                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  956.  
  957.  
  958. EXTERN_API( ComponentResult )
  959. DataHOpenForRead                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0008, 0x7000, 0xA82A);
  960.  
  961. EXTERN_API( ComponentResult )
  962. DataHCloseForRead                (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A);
  963.  
  964. EXTERN_API( ComponentResult )
  965. DataHSetDataRef                    (DataHandler             dh,
  966.                                  Handle                 dataRef)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  967.  
  968. EXTERN_API( ComponentResult )
  969. DataHGetDataRef                    (DataHandler             dh,
  970.                                  Handle *                dataRef)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
  971.  
  972. EXTERN_API( ComponentResult )
  973. DataHCompareDataRef                (DataHandler             dh,
  974.                                  Handle                 dataRef,
  975.                                  Boolean *                equal)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  976.  
  977. EXTERN_API( ComponentResult )
  978. DataHTask                        (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  979.  
  980. EXTERN_API( ComponentResult )
  981. DataHScheduleData                (DataHandler             dh,
  982.                                  Ptr                     PlaceToPutDataPtr,
  983.                                  long                     FileOffset,
  984.                                  long                     DataSize,
  985.                                  long                     RefCon,
  986.                                  DataHSchedulePtr         scheduleRec,
  987.                                  DataHCompletionUPP     CompletionRtn)                        FIVEWORDINLINE(0x2F3C, 0x0018, 0x000E, 0x7000, 0xA82A);
  988.  
  989. EXTERN_API( ComponentResult )
  990. DataHFinishData                    (DataHandler             dh,
  991.                                  Ptr                     PlaceToPutDataPtr,
  992.                                  Boolean                 Cancel)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x000F, 0x7000, 0xA82A);
  993.  
  994. EXTERN_API( ComponentResult )
  995. DataHFlushCache                    (DataHandler             dh)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  996.  
  997. EXTERN_API( ComponentResult )
  998. DataHResolveDataRef                (DataHandler             dh,
  999.                                  Handle                 theDataRef,
  1000.                                  Boolean *                wasChanged,
  1001.                                  Boolean                 userInterfaceAllowed)                FIVEWORDINLINE(0x2F3C, 0x000A, 0x0011, 0x7000, 0xA82A);
  1002.  
  1003. EXTERN_API( ComponentResult )
  1004. DataHGetFileSize                (DataHandler             dh,
  1005.                                  long *                    fileSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1006.  
  1007. EXTERN_API( ComponentResult )
  1008. DataHCanUseDataRef                (DataHandler             dh,
  1009.                                  Handle                 dataRef,
  1010.                                  long *                    useFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A);
  1011.  
  1012. EXTERN_API( ComponentResult )
  1013. DataHGetVolumeList                (DataHandler             dh,
  1014.                                  DataHVolumeList *        volumeList)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1015.  
  1016. EXTERN_API( ComponentResult )
  1017. DataHWrite                        (DataHandler             dh,
  1018.                                  Ptr                     data,
  1019.                                  long                     offset,
  1020.                                  long                     size,
  1021.                                  DataHCompletionUPP     completion,
  1022.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x0015, 0x7000, 0xA82A);
  1023.  
  1024. EXTERN_API( ComponentResult )
  1025. DataHPreextend                    (DataHandler             dh,
  1026.                                  long                     maxToAdd,
  1027.                                  long *                    spaceAdded)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  1028.  
  1029. EXTERN_API( ComponentResult )
  1030. DataHSetFileSize                (DataHandler             dh,
  1031.                                  long                     fileSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A);
  1032.  
  1033. EXTERN_API( ComponentResult )
  1034. DataHGetFreeSpace                (DataHandler             dh,
  1035.                                  unsigned long *        freeSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  1036.  
  1037. EXTERN_API( ComponentResult )
  1038. DataHCreateFile                    (DataHandler             dh,
  1039.                                  OSType                 creator,
  1040.                                  Boolean                 deleteExisting)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  1041.  
  1042. EXTERN_API( ComponentResult )
  1043. DataHGetPreferredBlockSize        (DataHandler             dh,
  1044.                                  long *                    blockSize)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  1045.  
  1046. EXTERN_API( ComponentResult )
  1047. DataHGetDeviceIndex                (DataHandler             dh,
  1048.                                  long *                    deviceIndex)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1049.  
  1050. EXTERN_API( ComponentResult )
  1051. DataHIsStreamingDataHandler        (DataHandler             dh,
  1052.                                  Boolean *                yes)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  1053.  
  1054. EXTERN_API( ComponentResult )
  1055. DataHGetDataInBuffer            (DataHandler             dh,
  1056.                                  long                     startOffset,
  1057.                                  long *                    size)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A);
  1058.  
  1059. EXTERN_API( ComponentResult )
  1060. DataHGetScheduleAheadTime        (DataHandler             dh,
  1061.                                  long *                    millisecs)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1062.  
  1063. EXTERN_API( ComponentResult )
  1064. DataHSetCacheSizeLimit            (DataHandler             dh,
  1065.                                  Size                     cacheSizeLimit)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  1066.  
  1067. EXTERN_API( ComponentResult )
  1068. DataHGetCacheSizeLimit            (DataHandler             dh,
  1069.                                  Size *                    cacheSizeLimit)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A);
  1070.  
  1071. EXTERN_API( ComponentResult )
  1072. DataHGetMovie                    (DataHandler             dh,
  1073.                                  Movie *                theMovie,
  1074.                                  short *                id)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  1075.  
  1076. EXTERN_API( ComponentResult )
  1077. DataHAddMovie                    (DataHandler             dh,
  1078.                                  Movie                     theMovie,
  1079.                                  short *                id)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0022, 0x7000, 0xA82A);
  1080.  
  1081. EXTERN_API( ComponentResult )
  1082. DataHUpdateMovie                (DataHandler             dh,
  1083.                                  Movie                     theMovie,
  1084.                                  short                     id)                                    FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A);
  1085.  
  1086. EXTERN_API( ComponentResult )
  1087. DataHDoesBuffer                    (DataHandler             dh,
  1088.                                  Boolean *                buffersReads,
  1089.                                  Boolean *                buffersWrites)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  1090.  
  1091. EXTERN_API( ComponentResult )
  1092. DataHGetFileName                (DataHandler             dh,
  1093.                                  Str255                 str)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  1094.  
  1095.  
  1096.  
  1097. EXTERN_API( ComponentResult )
  1098. DataHPlaybackHints                (DataHandler             dh,
  1099.                                  long                     flags,
  1100.                                  unsigned long             minFileOffset,
  1101.                                  unsigned long             maxFileOffset,
  1102.                                  long                     bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A);
  1103.  
  1104.  
  1105.  
  1106.  
  1107. /* Standard type for video digitizers */
  1108.  
  1109. enum {
  1110.     videoDigitizerComponentType    = FOUR_CHAR_CODE('vdig'),
  1111.     vdigInterfaceRev            = 2
  1112. };
  1113.  
  1114. /* Input Format Standards */
  1115.  
  1116. enum {
  1117.     ntscIn                        = 0,                            /* current input format */
  1118.     currentIn                    = 0,                            /* ntsc input format */
  1119.     palIn                        = 1,                            /* pal input format */
  1120.     secamIn                        = 2,                            /* secam input format */
  1121.     ntscReallyIn                = 3                                /* ntsc input format */
  1122. };
  1123.  
  1124. /* Input Formats */
  1125.  
  1126. enum {
  1127.     compositeIn                    = 0,                            /* input is composite format */
  1128.     sVideoIn                    = 1,                            /* input is sVideo format */
  1129.     rgbComponentIn                = 2,                            /* input is rgb component format */
  1130.     rgbComponentSyncIn            = 3,                            /* input is rgb component format (sync on green?)*/
  1131.     yuvComponentIn                = 4,                            /* input is yuv component format */
  1132.     yuvComponentSyncIn            = 5,                            /* input is yuv component format (sync on green?) */
  1133.     tvTunerIn                    = 6
  1134. };
  1135.  
  1136.  
  1137. /* Video Digitizer PlayThru States */
  1138.  
  1139. enum {
  1140.     vdPlayThruOff                = 0,
  1141.     vdPlayThruOn                = 1
  1142. };
  1143.  
  1144. /* Input Color Space Modes */
  1145.  
  1146. enum {
  1147.     vdDigitizerBW                = 0,                            /* black and white */
  1148.     vdDigitizerRGB                = 1                                /* rgb color */
  1149. };
  1150.  
  1151. /* Phase Lock Loop Modes */
  1152.  
  1153. enum {
  1154.     vdBroadcastMode                = 0,                            /* Broadcast / Laser Disk video mode */
  1155.     vdVTRMode                    = 1                                /* VCR / Magnetic media mode */
  1156. };
  1157.  
  1158. /* Field Select Options */
  1159.  
  1160. enum {
  1161.     vdUseAnyField                = 0,                            /* Digitizers choice on field use */
  1162.     vdUseOddField                = 1,                            /* Use odd field for half size vert and smaller */
  1163.     vdUseEvenField                = 2                                /* Use even field for half size vert and smaller */
  1164. };
  1165.  
  1166. /* vdig types */
  1167.  
  1168. enum {
  1169.     vdTypeBasic                    = 0,                            /* basic, no clipping */
  1170.     vdTypeAlpha                    = 1,                            /* supports clipping with alpha channel */
  1171.     vdTypeMask                    = 2,                            /* supports clipping with mask plane */
  1172.     vdTypeKey                    = 3                                /* supports clipping with key color(s) */
  1173. };
  1174.  
  1175.  
  1176.  
  1177. /* Digitizer Input Capability/Current Flags    */
  1178.  
  1179. enum {
  1180.     digiInDoesNTSC                = 1L << 0,                        /* digitizer supports NTSC input format */
  1181.     digiInDoesPAL                = 1L << 1,                        /* digitizer supports PAL input format */
  1182.     digiInDoesSECAM                = 1L << 2,                        /* digitizer supports SECAM input format */
  1183.     digiInDoesGenLock            = 1L << 7,                        /* digitizer does genlock */
  1184.     digiInDoesComposite            = 1L << 8,                        /* digitizer supports composite input type */
  1185.     digiInDoesSVideo            = 1L << 9,                        /* digitizer supports S-Video input type */
  1186.     digiInDoesComponent            = 1L << 10,                        /* digitizer supports component = rgb, input type */
  1187.     digiInVTR_Broadcast            = 1L << 11,                        /* digitizer can differentiate between the two */
  1188.     digiInDoesColor                = 1L << 12,                        /* digitizer supports color */
  1189.     digiInDoesBW                = 1L << 13,                        /* digitizer supports black & white */
  1190.                                                                 /* Digitizer Input Current Flags = these are valid only during active operating conditions,    */
  1191.     digiInSignalLock            = 1L << 31                        /* digitizer detects input signal is locked, this bit = horiz lock || vertical lock */
  1192. };
  1193.  
  1194.  
  1195. /* Digitizer Output Capability/Current Flags */
  1196.  
  1197. enum {
  1198.     digiOutDoes1                = 1L << 0,                        /* digitizer supports 1 bit pixels */
  1199.     digiOutDoes2                = 1L << 1,                        /* digitizer supports 2 bit pixels */
  1200.     digiOutDoes4                = 1L << 2,                        /* digitizer supports 4 bit pixels */
  1201.     digiOutDoes8                = 1L << 3,                        /* digitizer supports 8 bit pixels */
  1202.     digiOutDoes16                = 1L << 4,                        /* digitizer supports 16 bit pixels */
  1203.     digiOutDoes32                = 1L << 5,                        /* digitizer supports 32 bit pixels */
  1204.     digiOutDoesDither            = 1L << 6,                        /* digitizer dithers in indexed modes */
  1205.     digiOutDoesStretch            = 1L << 7,                        /* digitizer can arbitrarily stretch */
  1206.     digiOutDoesShrink            = 1L << 8,                        /* digitizer can arbitrarily shrink */
  1207.     digiOutDoesMask                = 1L << 9,                        /* digitizer can mask to clipping regions */
  1208.     digiOutDoesDouble            = 1L << 11,                        /* digitizer can stretch to exactly double size */
  1209.     digiOutDoesQuad                = 1L << 12,                        /* digitizer can stretch exactly quadruple size */
  1210.     digiOutDoesQuarter            = 1L << 13,                        /* digitizer can shrink to exactly quarter size */
  1211.     digiOutDoesSixteenth        = 1L << 14,                        /* digitizer can shrink to exactly sixteenth size */
  1212.     digiOutDoesRotate            = 1L << 15,                        /* digitizer supports rotate transformations */
  1213.     digiOutDoesHorizFlip        = 1L << 16,                        /* digitizer supports horizontal flips Sx < 0 */
  1214.     digiOutDoesVertFlip            = 1L << 17,                        /* digitizer supports vertical flips Sy < 0 */
  1215.     digiOutDoesSkew                = 1L << 18,                        /* digitizer supports skew = shear,twist, */
  1216.     digiOutDoesBlend            = 1L << 19,
  1217.     digiOutDoesWarp                = 1L << 20,
  1218.     digiOutDoesHW_DMA            = 1L << 21,                        /* digitizer not constrained to local device */
  1219.     digiOutDoesHWPlayThru        = 1L << 22,                        /* digitizer doesn't need time to play thru */
  1220.     digiOutDoesILUT                = 1L << 23,                        /* digitizer does inverse LUT for index modes */
  1221.     digiOutDoesKeyColor            = 1L << 24,                        /* digitizer does key color functions too */
  1222.     digiOutDoesAsyncGrabs        = 1L << 25,                        /* digitizer supports async grabs */
  1223.     digiOutDoesUnreadableScreenBits = 1L << 26,                    /* playthru doesn't generate readable bits on screen*/
  1224.     digiOutDoesCompress            = 1L << 27,                        /* supports alternate output data types */
  1225.     digiOutDoesCompressOnly        = 1L << 28,                        /* can't provide raw frames anywhere */
  1226.     digiOutDoesPlayThruDuringCompress = 1L << 29,                /* digi can do playthru while providing compressed data */
  1227.     digiOutDoesCompressPartiallyVisible = 1L << 30                /* digi doesn't need all bits visible on screen to do hardware compress */
  1228. };
  1229.  
  1230. /* Types */
  1231. typedef ComponentInstance                 VideoDigitizerComponent;
  1232. typedef ComponentResult                 VideoDigitizerError;
  1233. struct DigitizerInfo {
  1234.     short                             vdigType;
  1235.     long                             inputCapabilityFlags;
  1236.     long                             outputCapabilityFlags;
  1237.     long                             inputCurrentFlags;
  1238.     long                             outputCurrentFlags;
  1239.     short                             slot;                        /* temporary for connection purposes */
  1240.     GDHandle                         gdh;                        /* temporary for digitizers that have preferred screen */
  1241.     GDHandle                         maskgdh;                    /* temporary for digitizers that have mask planes */
  1242.     short                             minDestHeight;                /* Smallest resizable height */
  1243.     short                             minDestWidth;                /* Smallest resizable width */
  1244.     short                             maxDestHeight;                /* Largest resizable height */
  1245.     short                             maxDestWidth;                /* Largest resizable height */
  1246.     short                             blendLevels;                /* Number of blend levels supported (2 if 1 bit mask) */
  1247.     long                             reserved;                    /* reserved */
  1248. };
  1249. typedef struct DigitizerInfo DigitizerInfo;
  1250.  
  1251. struct VdigType {
  1252.     long                             digType;
  1253.     long                             reserved;
  1254. };
  1255. typedef struct VdigType VdigType;
  1256.  
  1257. struct VdigTypeList {
  1258.     short                             count;
  1259.     VdigType                         list[1];
  1260. };
  1261. typedef struct VdigTypeList VdigTypeList;
  1262.  
  1263. struct VdigBufferRec {
  1264.     PixMapHandle                     dest;
  1265.     Point                             location;
  1266.     long                             reserved;
  1267. };
  1268. typedef struct VdigBufferRec VdigBufferRec;
  1269.  
  1270. struct VdigBufferRecList {
  1271.     short                             count;
  1272.     MatrixRecordPtr                 matrix;
  1273.     RgnHandle                         mask;
  1274.     VdigBufferRec                     list[1];
  1275. };
  1276. typedef struct VdigBufferRecList VdigBufferRecList;
  1277.  
  1278. typedef VdigBufferRecList *                VdigBufferRecListPtr;
  1279. typedef VdigBufferRecListPtr *            VdigBufferRecListHandle;
  1280. typedef CALLBACK_API( void , VdigIntProcPtr )(long flags, long refcon);
  1281. typedef STACK_UPP_TYPE(VdigIntProcPtr)                             VdigIntUPP;
  1282. struct VDCompressionList {
  1283.     CodecComponent                     codec;
  1284.     CodecType                         cType;
  1285.     Str63                             typeName;
  1286.     Str63                             name;
  1287.     long                             formatFlags;
  1288.     long                             compressFlags;
  1289.     long                             reserved;
  1290. };
  1291. typedef struct VDCompressionList VDCompressionList;
  1292.  
  1293. typedef VDCompressionList *                VDCompressionListPtr;
  1294. typedef VDCompressionListPtr *            VDCompressionListHandle;
  1295.  
  1296. enum {
  1297.     dmaDepth1                    = 1,
  1298.     dmaDepth2                    = 2,
  1299.     dmaDepth4                    = 4,
  1300.     dmaDepth8                    = 8,
  1301.     dmaDepth16                    = 16,
  1302.     dmaDepth32                    = 32,
  1303.     dmaDepth2Gray                = 64,
  1304.     dmaDepth4Gray                = 128,
  1305.     dmaDepth8Gray                = 256
  1306. };
  1307.  
  1308.  
  1309. enum {
  1310.     kVDIGControlledFrameRate    = -1
  1311. };
  1312.  
  1313.  
  1314. EXTERN_API( VideoDigitizerError )
  1315. VDGetMaxSrcRect                    (VideoDigitizerComponent  ci,
  1316.                                  short                     inputStd,
  1317.                                  Rect *                    maxSrcRect)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0001, 0x7000, 0xA82A);
  1318.  
  1319. EXTERN_API( VideoDigitizerError )
  1320. VDGetActiveSrcRect                (VideoDigitizerComponent  ci,
  1321.                                  short                     inputStd,
  1322.                                  Rect *                    activeSrcRect)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  1323.  
  1324. EXTERN_API( VideoDigitizerError )
  1325. VDSetDigitizerRect                (VideoDigitizerComponent  ci,
  1326.                                  Rect *                    digitizerRect)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  1327.  
  1328. EXTERN_API( VideoDigitizerError )
  1329. VDGetDigitizerRect                (VideoDigitizerComponent  ci,
  1330.                                  Rect *                    digitizerRect)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
  1331.  
  1332. EXTERN_API( VideoDigitizerError )
  1333. VDGetVBlankRect                    (VideoDigitizerComponent  ci,
  1334.                                  short                     inputStd,
  1335.                                  Rect *                    vBlankRect)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0005, 0x7000, 0xA82A);
  1336.  
  1337. EXTERN_API( VideoDigitizerError )
  1338. VDGetMaskPixMap                    (VideoDigitizerComponent  ci,
  1339.                                  PixMapHandle             maskPixMap)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  1340.  
  1341. EXTERN_API( VideoDigitizerError )
  1342. VDGetPlayThruDestination        (VideoDigitizerComponent  ci,
  1343.                                  PixMapHandle *            dest,
  1344.                                  Rect *                    destRect,
  1345.                                  MatrixRecord *            m,
  1346.                                  RgnHandle *            mask)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0008, 0x7000, 0xA82A);
  1347.  
  1348. EXTERN_API( VideoDigitizerError )
  1349. VDUseThisCLUT                    (VideoDigitizerComponent  ci,
  1350.                                  CTabHandle             colorTableHandle)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0009, 0x7000, 0xA82A);
  1351.  
  1352. EXTERN_API( VideoDigitizerError )
  1353. VDSetInputGammaValue            (VideoDigitizerComponent  ci,
  1354.                                  Fixed                     channel1,
  1355.                                  Fixed                     channel2,
  1356.                                  Fixed                     channel3)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x000A, 0x7000, 0xA82A);
  1357.  
  1358. EXTERN_API( VideoDigitizerError )
  1359. VDGetInputGammaValue            (VideoDigitizerComponent  ci,
  1360.                                  Fixed *                channel1,
  1361.                                  Fixed *                channel2,
  1362.                                  Fixed *                channel3)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  1363.  
  1364. EXTERN_API( VideoDigitizerError )
  1365. VDSetBrightness                    (VideoDigitizerComponent  ci,
  1366.                                  unsigned short *        brightness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  1367.  
  1368. EXTERN_API( VideoDigitizerError )
  1369. VDGetBrightness                    (VideoDigitizerComponent  ci,
  1370.                                  unsigned short *        brightness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  1371.  
  1372. EXTERN_API( VideoDigitizerError )
  1373. VDSetContrast                    (VideoDigitizerComponent  ci,
  1374.                                  unsigned short *        contrast)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000E, 0x7000, 0xA82A);
  1375.  
  1376. EXTERN_API( VideoDigitizerError )
  1377. VDSetHue                        (VideoDigitizerComponent  ci,
  1378.                                  unsigned short *        hue)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  1379.  
  1380. EXTERN_API( VideoDigitizerError )
  1381. VDSetSharpness                    (VideoDigitizerComponent  ci,
  1382.                                  unsigned short *        sharpness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  1383.  
  1384. EXTERN_API( VideoDigitizerError )
  1385. VDSetSaturation                    (VideoDigitizerComponent  ci,
  1386.                                  unsigned short *        saturation)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  1387.  
  1388. EXTERN_API( VideoDigitizerError )
  1389. VDGetContrast                    (VideoDigitizerComponent  ci,
  1390.                                  unsigned short *        contrast)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1391.  
  1392. EXTERN_API( VideoDigitizerError )
  1393. VDGetHue                        (VideoDigitizerComponent  ci,
  1394.                                  unsigned short *        hue)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  1395.  
  1396. EXTERN_API( VideoDigitizerError )
  1397. VDGetSharpness                    (VideoDigitizerComponent  ci,
  1398.                                  unsigned short *        sharpness)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1399.  
  1400. EXTERN_API( VideoDigitizerError )
  1401. VDGetSaturation                    (VideoDigitizerComponent  ci,
  1402.                                  unsigned short *        saturation)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1403.  
  1404. EXTERN_API( VideoDigitizerError )
  1405. VDGrabOneFrame                    (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  1406.  
  1407. EXTERN_API( VideoDigitizerError )
  1408. VDGetMaxAuxBuffer                (VideoDigitizerComponent  ci,
  1409.                                  PixMapHandle *            pm,
  1410.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
  1411.  
  1412. EXTERN_API( VideoDigitizerError )
  1413. VDGetDigitizerInfo                (VideoDigitizerComponent  ci,
  1414.                                  DigitizerInfo *        info)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  1415.  
  1416. EXTERN_API( VideoDigitizerError )
  1417. VDGetCurrentFlags                (VideoDigitizerComponent  ci,
  1418.                                  long *                    inputCurrentFlag,
  1419.                                  long *                    outputCurrentFlag)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x001A, 0x7000, 0xA82A);
  1420.  
  1421. EXTERN_API( VideoDigitizerError )
  1422. VDSetKeyColor                    (VideoDigitizerComponent  ci,
  1423.                                  long                     index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1424.  
  1425. EXTERN_API( VideoDigitizerError )
  1426. VDGetKeyColor                    (VideoDigitizerComponent  ci,
  1427.                                  long *                    index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  1428.  
  1429. EXTERN_API( VideoDigitizerError )
  1430. VDAddKeyColor                    (VideoDigitizerComponent  ci,
  1431.                                  long *                    index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  1432.  
  1433. EXTERN_API( VideoDigitizerError )
  1434. VDGetNextKeyColor                (VideoDigitizerComponent  ci,
  1435.                                  long                     index)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1436.  
  1437. EXTERN_API( VideoDigitizerError )
  1438. VDSetKeyColorRange                (VideoDigitizerComponent  ci,
  1439.                                  RGBColor *                minRGB,
  1440.                                  RGBColor *                maxRGB)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x001F, 0x7000, 0xA82A);
  1441.  
  1442. EXTERN_API( VideoDigitizerError )
  1443. VDGetKeyColorRange                (VideoDigitizerComponent  ci,
  1444.                                  RGBColor *                minRGB,
  1445.                                  RGBColor *                maxRGB)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  1446.  
  1447. EXTERN_API( VideoDigitizerError )
  1448. VDSetDigitizerUserInterrupt        (VideoDigitizerComponent  ci,
  1449.                                  long                     flags,
  1450.                                  VdigIntUPP             userInterruptProc,
  1451.                                  long                     refcon)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0021, 0x7000, 0xA82A);
  1452.  
  1453. EXTERN_API( VideoDigitizerError )
  1454. VDSetInputColorSpaceMode        (VideoDigitizerComponent  ci,
  1455.                                  short                     colorSpaceMode)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0022, 0x7000, 0xA82A);
  1456.  
  1457. EXTERN_API( VideoDigitizerError )
  1458. VDGetInputColorSpaceMode        (VideoDigitizerComponent  ci,
  1459.                                  short *                colorSpaceMode)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0023, 0x7000, 0xA82A);
  1460.  
  1461. EXTERN_API( VideoDigitizerError )
  1462. VDSetClipState                    (VideoDigitizerComponent  ci,
  1463.                                  short                     clipEnable)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0024, 0x7000, 0xA82A);
  1464.  
  1465. EXTERN_API( VideoDigitizerError )
  1466. VDGetClipState                    (VideoDigitizerComponent  ci,
  1467.                                  short *                clipEnable)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  1468.  
  1469. EXTERN_API( VideoDigitizerError )
  1470. VDSetClipRgn                    (VideoDigitizerComponent  ci,
  1471.                                  RgnHandle                 clipRegion)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
  1472.  
  1473. EXTERN_API( VideoDigitizerError )
  1474. VDClearClipRgn                    (VideoDigitizerComponent  ci,
  1475.                                  RgnHandle                 clipRegion)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1476.  
  1477. EXTERN_API( VideoDigitizerError )
  1478. VDGetCLUTInUse                    (VideoDigitizerComponent  ci,
  1479.                                  CTabHandle *            colorTableHandle)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1480.  
  1481. EXTERN_API( VideoDigitizerError )
  1482. VDSetPLLFilterType                (VideoDigitizerComponent  ci,
  1483.                                  short                     pllType)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0029, 0x7000, 0xA82A);
  1484.  
  1485. EXTERN_API( VideoDigitizerError )
  1486. VDGetPLLFilterType                (VideoDigitizerComponent  ci,
  1487.                                  short *                pllType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  1488.  
  1489. EXTERN_API( VideoDigitizerError )
  1490. VDGetMaskandValue                (VideoDigitizerComponent  ci,
  1491.                                  unsigned short         blendLevel,
  1492.                                  long *                    mask,
  1493.                                  long *                    value)                                FIVEWORDINLINE(0x2F3C, 0x000A, 0x002B, 0x7000, 0xA82A);
  1494.  
  1495. EXTERN_API( VideoDigitizerError )
  1496. VDSetMasterBlendLevel            (VideoDigitizerComponent  ci,
  1497.                                  unsigned short *        blendLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
  1498.  
  1499. EXTERN_API( VideoDigitizerError )
  1500. VDSetPlayThruDestination        (VideoDigitizerComponent  ci,
  1501.                                  PixMapHandle             dest,
  1502.                                  Rect *                    destRect,
  1503.                                  MatrixRecord *            m,
  1504.                                  RgnHandle                 mask)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x002D, 0x7000, 0xA82A);
  1505.  
  1506. EXTERN_API( VideoDigitizerError )
  1507. VDSetPlayThruOnOff                (VideoDigitizerComponent  ci,
  1508.                                  short                     state)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x002E, 0x7000, 0xA82A);
  1509.  
  1510. EXTERN_API( VideoDigitizerError )
  1511. VDSetFieldPreference            (VideoDigitizerComponent  ci,
  1512.                                  short                     fieldFlag)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x002F, 0x7000, 0xA82A);
  1513.  
  1514. EXTERN_API( VideoDigitizerError )
  1515. VDGetFieldPreference            (VideoDigitizerComponent  ci,
  1516.                                  short *                fieldFlag)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
  1517.  
  1518. EXTERN_API( VideoDigitizerError )
  1519. VDPreflightDestination            (VideoDigitizerComponent  ci,
  1520.                                  Rect *                    digitizerRect,
  1521.                                  PixMap **                dest,
  1522.                                  Rect *                    destRect,
  1523.                                  MatrixRecord *            m)                                    FIVEWORDINLINE(0x2F3C, 0x0010, 0x0032, 0x7000, 0xA82A);
  1524.  
  1525. EXTERN_API( VideoDigitizerError )
  1526. VDPreflightGlobalRect            (VideoDigitizerComponent  ci,
  1527.                                  GrafPtr                 theWindow,
  1528.                                  Rect *                    globalRect)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  1529.  
  1530. EXTERN_API( VideoDigitizerError )
  1531. VDSetPlayThruGlobalRect            (VideoDigitizerComponent  ci,
  1532.                                  GrafPtr                 theWindow,
  1533.                                  Rect *                    globalRect)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  1534.  
  1535. EXTERN_API( VideoDigitizerError )
  1536. VDSetInputGammaRecord            (VideoDigitizerComponent  ci,
  1537.                                  VDGamRecPtr             inputGammaPtr)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A);
  1538.  
  1539. EXTERN_API( VideoDigitizerError )
  1540. VDGetInputGammaRecord            (VideoDigitizerComponent  ci,
  1541.                                  VDGamRecPtr *            inputGammaPtr)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0036, 0x7000, 0xA82A);
  1542.  
  1543. EXTERN_API( VideoDigitizerError )
  1544. VDSetBlackLevelValue            (VideoDigitizerComponent  ci,
  1545.                                  unsigned short *        blackLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0037, 0x7000, 0xA82A);
  1546.  
  1547. EXTERN_API( VideoDigitizerError )
  1548. VDGetBlackLevelValue            (VideoDigitizerComponent  ci,
  1549.                                  unsigned short *        blackLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0038, 0x7000, 0xA82A);
  1550.  
  1551. EXTERN_API( VideoDigitizerError )
  1552. VDSetWhiteLevelValue            (VideoDigitizerComponent  ci,
  1553.                                  unsigned short *        whiteLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0039, 0x7000, 0xA82A);
  1554.  
  1555. EXTERN_API( VideoDigitizerError )
  1556. VDGetWhiteLevelValue            (VideoDigitizerComponent  ci,
  1557.                                  unsigned short *        whiteLevel)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x003A, 0x7000, 0xA82A);
  1558.  
  1559. EXTERN_API( VideoDigitizerError )
  1560. VDGetVideoDefaults                (VideoDigitizerComponent  ci,
  1561.                                  unsigned short *        blackLevel,
  1562.                                  unsigned short *        whiteLevel,
  1563.                                  unsigned short *        brightness,
  1564.                                  unsigned short *        hue,
  1565.                                  unsigned short *        saturation,
  1566.                                  unsigned short *        contrast,
  1567.                                  unsigned short *        sharpness)                            FIVEWORDINLINE(0x2F3C, 0x001C, 0x003B, 0x7000, 0xA82A);
  1568.  
  1569. EXTERN_API( VideoDigitizerError )
  1570. VDGetNumberOfInputs                (VideoDigitizerComponent  ci,
  1571.                                  short *                inputs)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x003C, 0x7000, 0xA82A);
  1572.  
  1573. EXTERN_API( VideoDigitizerError )
  1574. VDGetInputFormat                (VideoDigitizerComponent  ci,
  1575.                                  short                     input,
  1576.                                  short *                format)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x003D, 0x7000, 0xA82A);
  1577.  
  1578. EXTERN_API( VideoDigitizerError )
  1579. VDSetInput                        (VideoDigitizerComponent  ci,
  1580.                                  short                     input)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x003E, 0x7000, 0xA82A);
  1581.  
  1582. EXTERN_API( VideoDigitizerError )
  1583. VDGetInput                        (VideoDigitizerComponent  ci,
  1584.                                  short *                input)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x003F, 0x7000, 0xA82A);
  1585.  
  1586. EXTERN_API( VideoDigitizerError )
  1587. VDSetInputStandard                (VideoDigitizerComponent  ci,
  1588.                                  short                     inputStandard)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0040, 0x7000, 0xA82A);
  1589.  
  1590. EXTERN_API( VideoDigitizerError )
  1591. VDSetupBuffers                    (VideoDigitizerComponent  ci,
  1592.                                  VdigBufferRecListHandle  bufferList)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0041, 0x7000, 0xA82A);
  1593.  
  1594. EXTERN_API( VideoDigitizerError )
  1595. VDGrabOneFrameAsync                (VideoDigitizerComponent  ci,
  1596.                                  short                     buffer)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0042, 0x7000, 0xA82A);
  1597.  
  1598. EXTERN_API( VideoDigitizerError )
  1599. VDDone                            (VideoDigitizerComponent  ci,
  1600.                                  short                     buffer)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0043, 0x7000, 0xA82A);
  1601.  
  1602. EXTERN_API( VideoDigitizerError )
  1603. VDSetCompression                (VideoDigitizerComponent  ci,
  1604.                                  OSType                 compressType,
  1605.                                  short                     depth,
  1606.                                  Rect *                    bounds,
  1607.                                  CodecQ                 spatialQuality,
  1608.                                  CodecQ                 temporalQuality,
  1609.                                  long                     keyFrameRate)                        FIVEWORDINLINE(0x2F3C, 0x0016, 0x0044, 0x7000, 0xA82A);
  1610.  
  1611. EXTERN_API( VideoDigitizerError )
  1612. VDCompressOneFrameAsync            (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0045, 0x7000, 0xA82A);
  1613.  
  1614. EXTERN_API( VideoDigitizerError )
  1615. VDCompressDone                    (VideoDigitizerComponent  ci,
  1616.                                  Boolean *                done,
  1617.                                  Ptr *                    theData,
  1618.                                  long *                    dataSize,
  1619.                                  UInt8 *                similarity,
  1620.                                  TimeRecord *            t)                                    FIVEWORDINLINE(0x2F3C, 0x0014, 0x0046, 0x7000, 0xA82A);
  1621.  
  1622. EXTERN_API( VideoDigitizerError )
  1623. VDReleaseCompressBuffer            (VideoDigitizerComponent  ci,
  1624.                                  Ptr                     bufferAddr)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0047, 0x7000, 0xA82A);
  1625.  
  1626. EXTERN_API( VideoDigitizerError )
  1627. VDGetImageDescription            (VideoDigitizerComponent  ci,
  1628.                                  ImageDescriptionHandle  desc)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0048, 0x7000, 0xA82A);
  1629.  
  1630. EXTERN_API( VideoDigitizerError )
  1631. VDResetCompressSequence            (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0049, 0x7000, 0xA82A);
  1632.  
  1633. EXTERN_API( VideoDigitizerError )
  1634. VDSetCompressionOnOff            (VideoDigitizerComponent  ci,
  1635.                                  Boolean                 state)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x004A, 0x7000, 0xA82A);
  1636.  
  1637. EXTERN_API( VideoDigitizerError )
  1638. VDGetCompressionTypes            (VideoDigitizerComponent  ci,
  1639.                                  VDCompressionListHandle  h)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x004B, 0x7000, 0xA82A);
  1640.  
  1641. EXTERN_API( VideoDigitizerError )
  1642. VDSetTimeBase                    (VideoDigitizerComponent  ci,
  1643.                                  TimeBase                 t)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x004C, 0x7000, 0xA82A);
  1644.  
  1645. EXTERN_API( VideoDigitizerError )
  1646. VDSetFrameRate                    (VideoDigitizerComponent  ci,
  1647.                                  Fixed                     framesPerSecond)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x004D, 0x7000, 0xA82A);
  1648.  
  1649. EXTERN_API( VideoDigitizerError )
  1650. VDGetDataRate                    (VideoDigitizerComponent  ci,
  1651.                                  long *                    milliSecPerFrame,
  1652.                                  Fixed *                framesPerSecond,
  1653.                                  long *                    bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x004E, 0x7000, 0xA82A);
  1654.  
  1655. EXTERN_API( VideoDigitizerError )
  1656. VDGetSoundInputDriver            (VideoDigitizerComponent  ci,
  1657.                                  Str255                 soundDriverName)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x004F, 0x7000, 0xA82A);
  1658.  
  1659. EXTERN_API( VideoDigitizerError )
  1660. VDGetDMADepths                    (VideoDigitizerComponent  ci,
  1661.                                  long *                    depthArray,
  1662.                                  long *                    preferredDepth)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0050, 0x7000, 0xA82A);
  1663.  
  1664. EXTERN_API( VideoDigitizerError )
  1665. VDGetPreferredTimeScale            (VideoDigitizerComponent  ci,
  1666.                                  TimeScale *            preferred)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0051, 0x7000, 0xA82A);
  1667.  
  1668. EXTERN_API( VideoDigitizerError )
  1669. VDReleaseAsyncBuffers            (VideoDigitizerComponent  ci)                                FIVEWORDINLINE(0x2F3C, 0x0000, 0x0052, 0x7000, 0xA82A);
  1670.  
  1671. /* 83 is reserved for compatibility reasons */
  1672. EXTERN_API( VideoDigitizerError )
  1673. VDSetDataRate                    (VideoDigitizerComponent  ci,
  1674.                                  long                     bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0054, 0x7000, 0xA82A);
  1675.  
  1676. EXTERN_API( VideoDigitizerError )
  1677. VDGetTimeCode                    (VideoDigitizerComponent  ci,
  1678.                                  TimeRecord *            atTime,
  1679.                                  void *                    timeCodeFormat,
  1680.                                  void *                    timeCodeTime)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0055, 0x7000, 0xA82A);
  1681.  
  1682. EXTERN_API( VideoDigitizerError )
  1683. VDUseSafeBuffers                (VideoDigitizerComponent  ci,
  1684.                                  Boolean                 useSafeBuffers)                        FIVEWORDINLINE(0x2F3C, 0x0002, 0x0056, 0x7000, 0xA82A);
  1685.  
  1686. EXTERN_API( VideoDigitizerError )
  1687. VDGetSoundInputSource            (VideoDigitizerComponent  ci,
  1688.                                  long                     videoInput,
  1689.                                  long *                    soundInput)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0057, 0x7000, 0xA82A);
  1690.  
  1691. EXTERN_API( VideoDigitizerError )
  1692. VDGetCompressionTime            (VideoDigitizerComponent  ci,
  1693.                                  OSType                 compressionType,
  1694.                                  short                     depth,
  1695.                                  Rect *                    srcRect,
  1696.                                  CodecQ *                spatialQuality,
  1697.                                  CodecQ *                temporalQuality,
  1698.                                  unsigned long *        compressTime)                        FIVEWORDINLINE(0x2F3C, 0x0016, 0x0058, 0x7000, 0xA82A);
  1699.  
  1700. EXTERN_API( VideoDigitizerError )
  1701. VDSetPreferredPacketSize        (VideoDigitizerComponent  ci,
  1702.                                  long                     preferredPacketSizeInBytes)            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0059, 0x7000, 0xA82A);
  1703.  
  1704.  
  1705.  
  1706. /*
  1707.     General Sequence Grab stuff
  1708. */
  1709. typedef ComponentInstance                 SeqGrabComponent;
  1710. typedef ComponentInstance                 SGChannel;
  1711.  
  1712. enum {
  1713.     SeqGrabComponentType        = FOUR_CHAR_CODE('barg'),
  1714.     SeqGrabChannelType            = FOUR_CHAR_CODE('sgch'),
  1715.     SeqGrabPanelType            = FOUR_CHAR_CODE('sgpn'),
  1716.     SeqGrabCompressionPanelType    = FOUR_CHAR_CODE('cmpr'),
  1717.     SeqGrabSourcePanelType        = FOUR_CHAR_CODE('sour')
  1718. };
  1719.  
  1720.  
  1721. enum {
  1722.     seqGrabToDisk                = 1,
  1723.     seqGrabToMemory                = 2,
  1724.     seqGrabDontUseTempMemory    = 4,
  1725.     seqGrabAppendToFile            = 8,
  1726.     seqGrabDontAddMovieResource    = 16,
  1727.     seqGrabDontMakeMovie        = 32,
  1728.     seqGrabPreExtendFile        = 64,
  1729.     seqGrabDataProcIsInterruptSafe = 128,
  1730.     seqGrabDataProcDoesOverlappingReads = 256
  1731. };
  1732.  
  1733. typedef unsigned long                     SeqGrabDataOutputEnum;
  1734.  
  1735. enum {
  1736.     seqGrabRecord                = 1,
  1737.     seqGrabPreview                = 2,
  1738.     seqGrabPlayDuringRecord        = 4
  1739. };
  1740.  
  1741. typedef unsigned long                     SeqGrabUsageEnum;
  1742.  
  1743. enum {
  1744.     seqGrabHasBounds            = 1,
  1745.     seqGrabHasVolume            = 2,
  1746.     seqGrabHasDiscreteSamples    = 4
  1747. };
  1748.  
  1749. typedef unsigned long                     SeqGrabChannelInfoEnum;
  1750. struct SeqGrabFrameInfo {
  1751.     long                             frameOffset;
  1752.     long                             frameTime;
  1753.     long                             frameSize;
  1754.     SGChannel                         frameChannel;
  1755.     long                             frameRefCon;
  1756. };
  1757. typedef struct SeqGrabFrameInfo SeqGrabFrameInfo;
  1758.  
  1759. typedef SeqGrabFrameInfo *                SeqGrabFrameInfoPtr;
  1760.  
  1761. enum {
  1762.     grabPictOffScreen            = 1,
  1763.     grabPictIgnoreClip            = 2,
  1764.     grabPictCurrentImage        = 4
  1765. };
  1766.  
  1767.  
  1768. enum {
  1769.     sgFlagControlledGrab        = (1 << 0)
  1770. };
  1771.  
  1772. typedef CALLBACK_API( OSErr , SGDataProcPtr )(SGChannel c, Ptr p, long len, long *offset, long chRefCon, TimeValue time, short writeType, long refCon);
  1773. typedef STACK_UPP_TYPE(SGDataProcPtr)                             SGDataUPP;
  1774. struct SGDeviceName {
  1775.     Str63                             name;
  1776.     Handle                             icon;
  1777.     long                             flags;
  1778.     long                             refCon;
  1779.     long                             reserved;                    /* zero*/
  1780. };
  1781. typedef struct SGDeviceName SGDeviceName;
  1782.  
  1783.  
  1784. enum {
  1785.     sgDeviceNameFlagDeviceUnavailable = (1 << 0)
  1786. };
  1787.  
  1788. struct SGDeviceListRecord {
  1789.     short                             count;
  1790.     short                             selectedIndex;
  1791.     long                             reserved;                    /* zero*/
  1792.     SGDeviceName                     entry[1];
  1793. };
  1794. typedef struct SGDeviceListRecord SGDeviceListRecord;
  1795.  
  1796. typedef SGDeviceListRecord *            SGDeviceListPtr;
  1797. typedef SGDeviceListPtr *                SGDeviceList;
  1798.  
  1799. enum {
  1800.     sgDeviceListWithIcons        = (1 << 0),
  1801.     sgDeviceListDontCheckAvailability = (1 << 1)
  1802. };
  1803.  
  1804.  
  1805. enum {
  1806.     seqGrabWriteAppend            = 0,
  1807.     seqGrabWriteReserve            = 1,
  1808.     seqGrabWriteFill            = 2
  1809. };
  1810.  
  1811.  
  1812. enum {
  1813.     seqGrabUnpause                = 0,
  1814.     seqGrabPause                = 1,
  1815.     seqGrabPauseForMenu            = 3
  1816. };
  1817.  
  1818.  
  1819. enum {
  1820.     channelFlagDontOpenResFile    = 2,
  1821.     channelFlagHasDependency    = 4
  1822. };
  1823.  
  1824. typedef CALLBACK_API( Boolean , SGModalFilterProcPtr )(DialogPtr theDialog, EventRecord *theEvent, short *itemHit, long refCon);
  1825. typedef STACK_UPP_TYPE(SGModalFilterProcPtr)                     SGModalFilterUPP;
  1826.  
  1827. enum {
  1828.     sgPanelFlagForPanel            = 1
  1829. };
  1830.  
  1831.  
  1832. enum {
  1833.     seqGrabSettingsPreviewOnly    = 1
  1834. };
  1835.  
  1836. struct SGOutputRecord {
  1837.     long                             data[1];
  1838. };
  1839. typedef struct SGOutputRecord SGOutputRecord;
  1840.  
  1841. typedef SGOutputRecord *                SGOutput;
  1842.  
  1843. enum {
  1844.     channelPlayNormal            = 0,
  1845.     channelPlayFast                = 1,
  1846.     channelPlayHighQuality        = 2,
  1847.     channelPlayAllData            = 4
  1848. };
  1849.  
  1850.  
  1851. EXTERN_API( ComponentResult )
  1852. SGInitialize                    (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0001, 0x7000, 0xA82A);
  1853.  
  1854. EXTERN_API( ComponentResult )
  1855. SGSetDataOutput                    (SeqGrabComponent         s,
  1856.                                  const FSSpec *            movieFile,
  1857.                                  long                     whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  1858.  
  1859. EXTERN_API( ComponentResult )
  1860. SGGetDataOutput                    (SeqGrabComponent         s,
  1861.                                  FSSpec *                movieFile,
  1862.                                  long *                    whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  1863.  
  1864. EXTERN_API( ComponentResult )
  1865. SGSetGWorld                        (SeqGrabComponent         s,
  1866.                                  CGrafPtr                 gp,
  1867.                                  GDHandle                 gd)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  1868.  
  1869. EXTERN_API( ComponentResult )
  1870. SGGetGWorld                        (SeqGrabComponent         s,
  1871.                                  CGrafPtr *                gp,
  1872.                                  GDHandle *                gd)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  1873.  
  1874. EXTERN_API( ComponentResult )
  1875. SGNewChannel                    (SeqGrabComponent         s,
  1876.                                  OSType                 channelType,
  1877.                                  SGChannel *            ref)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  1878.  
  1879. EXTERN_API( ComponentResult )
  1880. SGDisposeChannel                (SeqGrabComponent         s,
  1881.                                  SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  1882.  
  1883. EXTERN_API( ComponentResult )
  1884. SGStartPreview                    (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  1885.  
  1886. EXTERN_API( ComponentResult )
  1887. SGStartRecord                    (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  1888.  
  1889. EXTERN_API( ComponentResult )
  1890. SGIdle                            (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  1891.  
  1892. EXTERN_API( ComponentResult )
  1893. SGStop                            (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0013, 0x7000, 0xA82A);
  1894.  
  1895. EXTERN_API( ComponentResult )
  1896. SGPause                            (SeqGrabComponent         s,
  1897.                                  Byte                     pause)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0014, 0x7000, 0xA82A);
  1898.  
  1899. EXTERN_API( ComponentResult )
  1900. SGPrepare                        (SeqGrabComponent         s,
  1901.                                  Boolean                 prepareForPreview,
  1902.                                  Boolean                 prepareForRecord)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1903.  
  1904. EXTERN_API( ComponentResult )
  1905. SGRelease                        (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0016, 0x7000, 0xA82A);
  1906.  
  1907. EXTERN_API( Movie )
  1908. SGGetMovie                        (SeqGrabComponent         s)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0017, 0x7000, 0xA82A);
  1909.  
  1910. EXTERN_API( ComponentResult )
  1911. SGSetMaximumRecordTime            (SeqGrabComponent         s,
  1912.                                  unsigned long             ticks)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  1913.  
  1914. EXTERN_API( ComponentResult )
  1915. SGGetMaximumRecordTime            (SeqGrabComponent         s,
  1916.                                  unsigned long *        ticks)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  1917.  
  1918. EXTERN_API( ComponentResult )
  1919. SGGetStorageSpaceRemaining        (SeqGrabComponent         s,
  1920.                                  unsigned long *        bytes)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  1921.  
  1922. EXTERN_API( ComponentResult )
  1923. SGGetTimeRemaining                (SeqGrabComponent         s,
  1924.                                  long *                    ticksLeft)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1925.  
  1926. EXTERN_API( ComponentResult )
  1927. SGGrabPict                        (SeqGrabComponent         s,
  1928.                                  PicHandle *            p,
  1929.                                  const Rect *            bounds,
  1930.                                  short                     offscreenDepth,
  1931.                                  long                     grabPictFlags)                        FIVEWORDINLINE(0x2F3C, 0x000E, 0x001C, 0x7000, 0xA82A);
  1932.  
  1933. EXTERN_API( ComponentResult )
  1934. SGGetLastMovieResID                (SeqGrabComponent         s,
  1935.                                  short *                resID)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  1936.  
  1937. EXTERN_API( ComponentResult )
  1938. SGSetFlags                        (SeqGrabComponent         s,
  1939.                                  long                     sgFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1940.  
  1941. EXTERN_API( ComponentResult )
  1942. SGGetFlags                        (SeqGrabComponent         s,
  1943.                                  long *                    sgFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  1944.  
  1945. EXTERN_API( ComponentResult )
  1946. SGSetDataProc                    (SeqGrabComponent         s,
  1947.                                  SGDataUPP                 proc,
  1948.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0020, 0x7000, 0xA82A);
  1949.  
  1950. EXTERN_API( ComponentResult )
  1951. SGNewChannelFromComponent        (SeqGrabComponent         s,
  1952.                                  SGChannel *            newChannel,
  1953.                                  Component                 sgChannelComponent)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  1954.  
  1955. EXTERN_API( ComponentResult )
  1956. SGDisposeDeviceList                (SeqGrabComponent         s,
  1957.                                  SGDeviceList             list)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0022, 0x7000, 0xA82A);
  1958.  
  1959. EXTERN_API( ComponentResult )
  1960. SGAppendDeviceListToMenu        (SeqGrabComponent         s,
  1961.                                  SGDeviceList             list,
  1962.                                  MenuHandle             mh)                                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0023, 0x7000, 0xA82A);
  1963.  
  1964. EXTERN_API( ComponentResult )
  1965. SGSetSettings                    (SeqGrabComponent         s,
  1966.                                  UserData                 ud,
  1967.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  1968.  
  1969. EXTERN_API( ComponentResult )
  1970. SGGetSettings                    (SeqGrabComponent         s,
  1971.                                  UserData *                ud,
  1972.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0025, 0x7000, 0xA82A);
  1973.  
  1974. EXTERN_API( ComponentResult )
  1975. SGGetIndChannel                    (SeqGrabComponent         s,
  1976.                                  short                     index,
  1977.                                  SGChannel *            ref,
  1978.                                  OSType *                chanType)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0026, 0x7000, 0xA82A);
  1979.  
  1980. EXTERN_API( ComponentResult )
  1981. SGUpdate                        (SeqGrabComponent         s,
  1982.                                  RgnHandle                 updateRgn)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1983.  
  1984. EXTERN_API( ComponentResult )
  1985. SGGetPause                        (SeqGrabComponent         s,
  1986.                                  Byte *                    paused)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1987.  
  1988. typedef const Component *                ConstComponentListPtr;
  1989. EXTERN_API( ComponentResult )
  1990. SGSettingsDialog                (SeqGrabComponent         s,
  1991.                                  SGChannel                 c,
  1992.                                  short                     numPanels,
  1993.                                  ConstComponentListPtr     panelList,
  1994.                                  long                     flags,
  1995.                                  SGModalFilterUPP         proc,
  1996.                                  long                     procRefNum)                            FIVEWORDINLINE(0x2F3C, 0x0016, 0x0029, 0x7000, 0xA82A);
  1997.  
  1998. EXTERN_API( ComponentResult )
  1999. SGGetAlignmentProc                (SeqGrabComponent         s,
  2000.                                  ICMAlignmentProcRecordPtr  alignmentProc)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x002A, 0x7000, 0xA82A);
  2001.  
  2002. EXTERN_API( ComponentResult )
  2003. SGSetChannelSettings            (SeqGrabComponent         s,
  2004.                                  SGChannel                 c,
  2005.                                  UserData                 ud,
  2006.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x002B, 0x7000, 0xA82A);
  2007.  
  2008. EXTERN_API( ComponentResult )
  2009. SGGetChannelSettings            (SeqGrabComponent         s,
  2010.                                  SGChannel                 c,
  2011.                                  UserData *                ud,
  2012.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x002C, 0x7000, 0xA82A);
  2013.  
  2014. EXTERN_API( ComponentResult )
  2015. SGGetMode                        (SeqGrabComponent         s,
  2016.                                  Boolean *                previewMode,
  2017.                                  Boolean *                recordMode)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  2018.  
  2019. EXTERN_API( ComponentResult )
  2020. SGSetDataRef                    (SeqGrabComponent         s,
  2021.                                  Handle                 dataRef,
  2022.                                  OSType                 dataRefType,
  2023.                                  long                     whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x002E, 0x7000, 0xA82A);
  2024.  
  2025. EXTERN_API( ComponentResult )
  2026. SGGetDataRef                    (SeqGrabComponent         s,
  2027.                                  Handle *                dataRef,
  2028.                                  OSType *                dataRefType,
  2029.                                  long *                    whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x002F, 0x7000, 0xA82A);
  2030.  
  2031. EXTERN_API( ComponentResult )
  2032. SGNewOutput                        (SeqGrabComponent         s,
  2033.                                  Handle                 dataRef,
  2034.                                  OSType                 dataRefType,
  2035.                                  long                     whereFlags,
  2036.                                  SGOutput *                sgOut)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0030, 0x7000, 0xA82A);
  2037.  
  2038. EXTERN_API( ComponentResult )
  2039. SGDisposeOutput                    (SeqGrabComponent         s,
  2040.                                  SGOutput                 sgOut)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0031, 0x7000, 0xA82A);
  2041.  
  2042. EXTERN_API( ComponentResult )
  2043. SGSetOutputFlags                (SeqGrabComponent         s,
  2044.                                  SGOutput                 sgOut,
  2045.                                  long                     whereFlags)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
  2046.  
  2047. EXTERN_API( ComponentResult )
  2048. SGSetChannelOutput                (SeqGrabComponent         s,
  2049.                                  SGChannel                 c,
  2050.                                  SGOutput                 sgOut)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0033, 0x7000, 0xA82A);
  2051.  
  2052. EXTERN_API( ComponentResult )
  2053. SGGetDataOutputStorageSpaceRemaining (SeqGrabComponent     s,
  2054.                                  SGOutput                 sgOut,
  2055.                                  unsigned long *        space)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x0034, 0x7000, 0xA82A);
  2056.  
  2057. EXTERN_API( ComponentResult )
  2058. SGHandleUpdateEvent                (SeqGrabComponent         s,
  2059.                                  EventRecord *            event,
  2060.                                  Boolean *                handled)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0035, 0x7000, 0xA82A);
  2061.  
  2062. /*
  2063.     calls from Channel to seqGrab
  2064. */
  2065. EXTERN_API( ComponentResult )
  2066. SGWriteMovieData                (SeqGrabComponent         s,
  2067.                                  SGChannel                 c,
  2068.                                  Ptr                     p,
  2069.                                  long                     len,
  2070.                                  long *                    offset)                                FIVEWORDINLINE(0x2F3C, 0x0010, 0x0100, 0x7000, 0xA82A);
  2071.  
  2072. EXTERN_API( ComponentResult )
  2073. SGAddFrameReference                (SeqGrabComponent         s,
  2074.                                  SeqGrabFrameInfoPtr     frameInfo)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  2075.  
  2076. EXTERN_API( ComponentResult )
  2077. SGGetNextFrameReference            (SeqGrabComponent         s,
  2078.                                  SeqGrabFrameInfoPtr     frameInfo,
  2079.                                  TimeValue *            frameDuration,
  2080.                                  long *                    frameNumber)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0102, 0x7000, 0xA82A);
  2081.  
  2082. EXTERN_API( ComponentResult )
  2083. SGGetTimeBase                    (SeqGrabComponent         s,
  2084.                                  TimeBase *                tb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  2085.  
  2086. EXTERN_API( ComponentResult )
  2087. SGSortDeviceList                (SeqGrabComponent         s,
  2088.                                  SGDeviceList             list)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  2089.  
  2090. EXTERN_API( ComponentResult )
  2091. SGAddMovieData                    (SeqGrabComponent         s,
  2092.                                  SGChannel                 c,
  2093.                                  Ptr                     p,
  2094.                                  long                     len,
  2095.                                  long *                    offset,
  2096.                                  long                     chRefCon,
  2097.                                  TimeValue                 time,
  2098.                                  short                     writeType)                            FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  2099.  
  2100. EXTERN_API( ComponentResult )
  2101. SGChangedSource                    (SeqGrabComponent         s,
  2102.                                  SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0106, 0x7000, 0xA82A);
  2103.  
  2104.  
  2105.  
  2106. /*** Sequence Grab CHANNEL Component Stuff ***/
  2107.  
  2108. EXTERN_API( ComponentResult )
  2109. SGSetChannelUsage                (SGChannel                 c,
  2110.                                  long                     usage)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0080, 0x7000, 0xA82A);
  2111.  
  2112. EXTERN_API( ComponentResult )
  2113. SGGetChannelUsage                (SGChannel                 c,
  2114.                                  long *                    usage)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0081, 0x7000, 0xA82A);
  2115.  
  2116. EXTERN_API( ComponentResult )
  2117. SGSetChannelBounds                (SGChannel                 c,
  2118.                                  const Rect *            bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0082, 0x7000, 0xA82A);
  2119.  
  2120. EXTERN_API( ComponentResult )
  2121. SGGetChannelBounds                (SGChannel                 c,
  2122.                                  Rect *                    bounds)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0083, 0x7000, 0xA82A);
  2123.  
  2124. EXTERN_API( ComponentResult )
  2125. SGSetChannelVolume                (SGChannel                 c,
  2126.                                  short                     volume)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0084, 0x7000, 0xA82A);
  2127.  
  2128. EXTERN_API( ComponentResult )
  2129. SGGetChannelVolume                (SGChannel                 c,
  2130.                                  short *                volume)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0085, 0x7000, 0xA82A);
  2131.  
  2132. EXTERN_API( ComponentResult )
  2133. SGGetChannelInfo                (SGChannel                 c,
  2134.                                  long *                    channelInfo)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0086, 0x7000, 0xA82A);
  2135.  
  2136. EXTERN_API( ComponentResult )
  2137. SGSetChannelPlayFlags            (SGChannel                 c,
  2138.                                  long                     playFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  2139.  
  2140. EXTERN_API( ComponentResult )
  2141. SGGetChannelPlayFlags            (SGChannel                 c,
  2142.                                  long *                    playFlags)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0088, 0x7000, 0xA82A);
  2143.  
  2144. EXTERN_API( ComponentResult )
  2145. SGSetChannelMaxFrames            (SGChannel                 c,
  2146.                                  long                     frameCount)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0089, 0x7000, 0xA82A);
  2147.  
  2148. EXTERN_API( ComponentResult )
  2149. SGGetChannelMaxFrames            (SGChannel                 c,
  2150.                                  long *                    frameCount)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008A, 0x7000, 0xA82A);
  2151.  
  2152. EXTERN_API( ComponentResult )
  2153. SGSetChannelRefCon                (SGChannel                 c,
  2154.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x008B, 0x7000, 0xA82A);
  2155.  
  2156. EXTERN_API( ComponentResult )
  2157. SGSetChannelClip                (SGChannel                 c,
  2158.                                  RgnHandle                 theClip)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008C, 0x7000, 0xA82A);
  2159.  
  2160. EXTERN_API( ComponentResult )
  2161. SGGetChannelClip                (SGChannel                 c,
  2162.                                  RgnHandle *            theClip)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008D, 0x7000, 0xA82A);
  2163.  
  2164. EXTERN_API( ComponentResult )
  2165. SGGetChannelSampleDescription    (SGChannel                 c,
  2166.                                  Handle                 sampleDesc)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x008E, 0x7000, 0xA82A);
  2167.  
  2168. EXTERN_API( ComponentResult )
  2169. SGGetChannelDeviceList            (SGChannel                 c,
  2170.                                  long                     selectionFlags,
  2171.                                  SGDeviceList *            list)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x008F, 0x7000, 0xA82A);
  2172.  
  2173. EXTERN_API( ComponentResult )
  2174. SGSetChannelDevice                (SGChannel                 c,
  2175.                                  StringPtr                 name)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0090, 0x7000, 0xA82A);
  2176.  
  2177. EXTERN_API( ComponentResult )
  2178. SGSetChannelMatrix                (SGChannel                 c,
  2179.                                  const MatrixRecord *    m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0091, 0x7000, 0xA82A);
  2180.  
  2181. EXTERN_API( ComponentResult )
  2182. SGGetChannelMatrix                (SGChannel                 c,
  2183.                                  MatrixRecord *            m)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0092, 0x7000, 0xA82A);
  2184.  
  2185. EXTERN_API( ComponentResult )
  2186. SGGetChannelTimeScale            (SGChannel                 c,
  2187.                                  TimeScale *            scale)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0093, 0x7000, 0xA82A);
  2188.  
  2189. EXTERN_API( ComponentResult )
  2190. SGChannelPutPicture                (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0094, 0x7000, 0xA82A);
  2191.  
  2192. EXTERN_API( ComponentResult )
  2193. SGChannelSetRequestedDataRate    (SGChannel                 c,
  2194.                                  long                     bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0095, 0x7000, 0xA82A);
  2195.  
  2196. EXTERN_API( ComponentResult )
  2197. SGChannelGetRequestedDataRate    (SGChannel                 c,
  2198.                                  long *                    bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0096, 0x7000, 0xA82A);
  2199.  
  2200. EXTERN_API( ComponentResult )
  2201. SGChannelSetDataSourceName        (SGChannel                 c,
  2202.                                  ConstStr255Param         name,
  2203.                                  ScriptCode             scriptTag)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x0097, 0x7000, 0xA82A);
  2204.  
  2205. EXTERN_API( ComponentResult )
  2206. SGChannelGetDataSourceName        (SGChannel                 c,
  2207.                                  Str255                 name,
  2208.                                  ScriptCode *            scriptTag)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0098, 0x7000, 0xA82A);
  2209.  
  2210. /*
  2211.     calls from seqGrab to Channel
  2212. */
  2213. EXTERN_API( ComponentResult )
  2214. SGInitChannel                    (SGChannel                 c,
  2215.                                  SeqGrabComponent         owner)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0180, 0x7000, 0xA82A);
  2216.  
  2217. EXTERN_API( ComponentResult )
  2218. SGWriteSamples                    (SGChannel                 c,
  2219.                                  Movie                     m,
  2220.                                  AliasHandle             theFile)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0181, 0x7000, 0xA82A);
  2221.  
  2222. EXTERN_API( ComponentResult )
  2223. SGGetDataRate                    (SGChannel                 c,
  2224.                                  long *                    bytesPerSecond)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0182, 0x7000, 0xA82A);
  2225.  
  2226. EXTERN_API( ComponentResult )
  2227. SGAlignChannelRect                (SGChannel                 c,
  2228.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0183, 0x7000, 0xA82A);
  2229.  
  2230. /*
  2231.     Dorky dialog panel calls
  2232. */
  2233. EXTERN_API( ComponentResult )
  2234. SGPanelGetDitl                    (SeqGrabComponent         s,
  2235.                                  Handle *                ditl)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0200, 0x7000, 0xA82A);
  2236.  
  2237. EXTERN_API( ComponentResult )
  2238. SGPanelGetTitle                    (SeqGrabComponent         s,
  2239.                                  Str255                 title)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0201, 0x7000, 0xA82A);
  2240.  
  2241. EXTERN_API( ComponentResult )
  2242. SGPanelCanRun                    (SeqGrabComponent         s,
  2243.                                  SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0202, 0x7000, 0xA82A);
  2244.  
  2245. EXTERN_API( ComponentResult )
  2246. SGPanelInstall                    (SeqGrabComponent         s,
  2247.                                  SGChannel                 c,
  2248.                                  DialogPtr                 d,
  2249.                                  short                     itemOffset)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0203, 0x7000, 0xA82A);
  2250.  
  2251. EXTERN_API( ComponentResult )
  2252. SGPanelEvent                    (SeqGrabComponent         s,
  2253.                                  SGChannel                 c,
  2254.                                  DialogPtr                 d,
  2255.                                  short                     itemOffset,
  2256.                                  EventRecord *            theEvent,
  2257.                                  short *                itemHit,
  2258.                                  Boolean *                handled)                            FIVEWORDINLINE(0x2F3C, 0x0016, 0x0204, 0x7000, 0xA82A);
  2259.  
  2260. EXTERN_API( ComponentResult )
  2261. SGPanelItem                        (SeqGrabComponent         s,
  2262.                                  SGChannel                 c,
  2263.                                  DialogPtr                 d,
  2264.                                  short                     itemOffset,
  2265.                                  short                     itemNum)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0205, 0x7000, 0xA82A);
  2266.  
  2267. EXTERN_API( ComponentResult )
  2268. SGPanelRemove                    (SeqGrabComponent         s,
  2269.                                  SGChannel                 c,
  2270.                                  DialogPtr                 d,
  2271.                                  short                     itemOffset)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0206, 0x7000, 0xA82A);
  2272.  
  2273. EXTERN_API( ComponentResult )
  2274. SGPanelSetGrabber                (SeqGrabComponent         s,
  2275.                                  SeqGrabComponent         sg)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0207, 0x7000, 0xA82A);
  2276.  
  2277. EXTERN_API( ComponentResult )
  2278. SGPanelSetResFile                (SeqGrabComponent         s,
  2279.                                  short                     resRef)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0208, 0x7000, 0xA82A);
  2280.  
  2281. EXTERN_API( ComponentResult )
  2282. SGPanelGetSettings                (SeqGrabComponent         s,
  2283.                                  SGChannel                 c,
  2284.                                  UserData *                ud,
  2285.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x0209, 0x7000, 0xA82A);
  2286.  
  2287. EXTERN_API( ComponentResult )
  2288. SGPanelSetSettings                (SeqGrabComponent         s,
  2289.                                  SGChannel                 c,
  2290.                                  UserData                 ud,
  2291.                                  long                     flags)                                FIVEWORDINLINE(0x2F3C, 0x000C, 0x020A, 0x7000, 0xA82A);
  2292.  
  2293. EXTERN_API( ComponentResult )
  2294. SGPanelValidateInput            (SeqGrabComponent         s,
  2295.                                  Boolean *                ok)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x020B, 0x7000, 0xA82A);
  2296.  
  2297. EXTERN_API( ComponentResult )
  2298. SGPanelSetEventFilter            (SeqGrabComponent         s,
  2299.                                  SGModalFilterUPP         proc,
  2300.                                  long                     refCon)                                FIVEWORDINLINE(0x2F3C, 0x0008, 0x020C, 0x7000, 0xA82A);
  2301.  
  2302.  
  2303. /*** Sequence Grab VIDEO CHANNEL Component Stuff ***/
  2304. /*
  2305.     Video stuff
  2306. */
  2307. struct SGCompressInfo {
  2308.     Ptr                             buffer;
  2309.     unsigned long                     bufferSize;
  2310.     UInt8                             similarity;
  2311.     UInt8                             reserved;
  2312. };
  2313. typedef struct SGCompressInfo SGCompressInfo;
  2314.  
  2315. typedef CALLBACK_API( ComponentResult , SGGrabBottleProcPtr )(SGChannel c, short bufferNum, long refCon);
  2316. typedef CALLBACK_API( ComponentResult , SGGrabCompleteBottleProcPtr )(SGChannel c, short bufferNum, Boolean *done, long refCon);
  2317. typedef CALLBACK_API( ComponentResult , SGDisplayBottleProcPtr )(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  2318. typedef CALLBACK_API( ComponentResult , SGCompressBottleProcPtr )(SGChannel c, short bufferNum, long refCon);
  2319. typedef CALLBACK_API( ComponentResult , SGCompressCompleteBottleProcPtr )(SGChannel c, short bufferNum, Boolean *done, SGCompressInfo *ci, long refCon);
  2320. typedef CALLBACK_API( ComponentResult , SGAddFrameBottleProcPtr )(SGChannel c, short bufferNum, TimeValue atTime, TimeScale scale, const SGCompressInfo *ci, long refCon);
  2321. typedef CALLBACK_API( ComponentResult , SGTransferFrameBottleProcPtr )(SGChannel c, short bufferNum, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  2322. typedef CALLBACK_API( ComponentResult , SGGrabCompressCompleteBottleProcPtr )(SGChannel c, Boolean *done, SGCompressInfo *ci, TimeRecord *t, long refCon);
  2323. typedef CALLBACK_API( ComponentResult , SGDisplayCompressBottleProcPtr )(SGChannel c, Ptr dataPtr, ImageDescriptionHandle desc, MatrixRecord *mp, RgnHandle clipRgn, long refCon);
  2324. typedef STACK_UPP_TYPE(SGGrabBottleProcPtr)                     SGGrabBottleUPP;
  2325. typedef STACK_UPP_TYPE(SGGrabCompleteBottleProcPtr)             SGGrabCompleteBottleUPP;
  2326. typedef STACK_UPP_TYPE(SGDisplayBottleProcPtr)                     SGDisplayBottleUPP;
  2327. typedef STACK_UPP_TYPE(SGCompressBottleProcPtr)                 SGCompressBottleUPP;
  2328. typedef STACK_UPP_TYPE(SGCompressCompleteBottleProcPtr)         SGCompressCompleteBottleUPP;
  2329. typedef STACK_UPP_TYPE(SGAddFrameBottleProcPtr)                 SGAddFrameBottleUPP;
  2330. typedef STACK_UPP_TYPE(SGTransferFrameBottleProcPtr)             SGTransferFrameBottleUPP;
  2331. typedef STACK_UPP_TYPE(SGGrabCompressCompleteBottleProcPtr)     SGGrabCompressCompleteBottleUPP;
  2332. typedef STACK_UPP_TYPE(SGDisplayCompressBottleProcPtr)             SGDisplayCompressBottleUPP;
  2333. struct VideoBottles {
  2334.     short                             procCount;
  2335.     SGGrabBottleUPP                 grabProc;
  2336.     SGGrabCompleteBottleUPP         grabCompleteProc;
  2337.     SGDisplayBottleUPP                 displayProc;
  2338.     SGCompressBottleUPP             compressProc;
  2339.     SGCompressCompleteBottleUPP     compressCompleteProc;
  2340.     SGAddFrameBottleUPP             addFrameProc;
  2341.     SGTransferFrameBottleUPP         transferFrameProc;
  2342.     SGGrabCompressCompleteBottleUPP  grabCompressCompleteProc;
  2343.     SGDisplayCompressBottleUPP         displayCompressProc;
  2344. };
  2345. typedef struct VideoBottles VideoBottles;
  2346.  
  2347. EXTERN_API( ComponentResult )
  2348. SGGetSrcVideoBounds                (SGChannel                 c,
  2349.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  2350.  
  2351. EXTERN_API( ComponentResult )
  2352. SGSetVideoRect                    (SGChannel                 c,
  2353.                                  const Rect *            r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  2354.  
  2355. EXTERN_API( ComponentResult )
  2356. SGGetVideoRect                    (SGChannel                 c,
  2357.                                  Rect *                    r)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  2358.  
  2359. EXTERN_API( ComponentResult )
  2360. SGGetVideoCompressorType        (SGChannel                 c,
  2361.                                  OSType *                compressorType)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  2362.  
  2363. EXTERN_API( ComponentResult )
  2364. SGSetVideoCompressorType        (SGChannel                 c,
  2365.                                  OSType                 compressorType)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  2366.  
  2367. EXTERN_API( ComponentResult )
  2368. SGSetVideoCompressor            (SGChannel                 c,
  2369.                                  short                     depth,
  2370.                                  CompressorComponent     compressor,
  2371.                                  CodecQ                 spatialQuality,
  2372.                                  CodecQ                 temporalQuality,
  2373.                                  long                     keyFrameRate)                        FIVEWORDINLINE(0x2F3C, 0x0012, 0x0105, 0x7000, 0xA82A);
  2374.  
  2375. EXTERN_API( ComponentResult )
  2376. SGGetVideoCompressor            (SGChannel                 c,
  2377.                                  short *                depth,
  2378.                                  CompressorComponent *    compressor,
  2379.                                  CodecQ *                spatialQuality,
  2380.                                  CodecQ *                temporalQuality,
  2381.                                  long *                    keyFrameRate)                        FIVEWORDINLINE(0x2F3C, 0x0014, 0x0106, 0x7000, 0xA82A);
  2382.  
  2383. EXTERN_API( ComponentInstance )
  2384. SGGetVideoDigitizerComponent    (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0107, 0x7000, 0xA82A);
  2385.  
  2386. EXTERN_API( ComponentResult )
  2387. SGSetVideoDigitizerComponent    (SGChannel                 c,
  2388.                                  ComponentInstance         vdig)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  2389.  
  2390. EXTERN_API( ComponentResult )
  2391. SGVideoDigitizerChanged            (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0109, 0x7000, 0xA82A);
  2392.  
  2393. EXTERN_API( ComponentResult )
  2394. SGSetVideoBottlenecks            (SGChannel                 c,
  2395.                                  VideoBottles *            vb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  2396.  
  2397. EXTERN_API( ComponentResult )
  2398. SGGetVideoBottlenecks            (SGChannel                 c,
  2399.                                  VideoBottles *            vb)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  2400.  
  2401. EXTERN_API( ComponentResult )
  2402. SGGrabFrame                        (SGChannel                 c,
  2403.                                  short                     bufferNum)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x010C, 0x7000, 0xA82A);
  2404.  
  2405. EXTERN_API( ComponentResult )
  2406. SGGrabFrameComplete                (SGChannel                 c,
  2407.                                  short                     bufferNum,
  2408.                                  Boolean *                done)                                FIVEWORDINLINE(0x2F3C, 0x0006, 0x010D, 0x7000, 0xA82A);
  2409.  
  2410. EXTERN_API( ComponentResult )
  2411. SGDisplayFrame                    (SGChannel                 c,
  2412.                                  short                     bufferNum,
  2413.                                  const MatrixRecord *    mp,
  2414.                                  RgnHandle                 clipRgn)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x010E, 0x7000, 0xA82A);
  2415.  
  2416. EXTERN_API( ComponentResult )
  2417. SGCompressFrame                    (SGChannel                 c,
  2418.                                  short                     bufferNum)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x010F, 0x7000, 0xA82A);
  2419.  
  2420. EXTERN_API( ComponentResult )
  2421. SGCompressFrameComplete            (SGChannel                 c,
  2422.                                  short                     bufferNum,
  2423.                                  Boolean *                done,
  2424.                                  SGCompressInfo *        ci)                                    FIVEWORDINLINE(0x2F3C, 0x000A, 0x0110, 0x7000, 0xA82A);
  2425.  
  2426. EXTERN_API( ComponentResult )
  2427. SGAddFrame                        (SGChannel                 c,
  2428.                                  short                     bufferNum,
  2429.                                  TimeValue                 atTime,
  2430.                                  TimeScale                 scale,
  2431.                                  const SGCompressInfo *    ci)                                    FIVEWORDINLINE(0x2F3C, 0x000E, 0x0111, 0x7000, 0xA82A);
  2432.  
  2433. EXTERN_API( ComponentResult )
  2434. SGTransferFrameForCompress        (SGChannel                 c,
  2435.                                  short                     bufferNum,
  2436.                                  const MatrixRecord *    mp,
  2437.                                  RgnHandle                 clipRgn)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x0112, 0x7000, 0xA82A);
  2438.  
  2439. EXTERN_API( ComponentResult )
  2440. SGSetCompressBuffer                (SGChannel                 c,
  2441.                                  short                     depth,
  2442.                                  const Rect *            compressSize)                        FIVEWORDINLINE(0x2F3C, 0x0006, 0x0113, 0x7000, 0xA82A);
  2443.  
  2444. EXTERN_API( ComponentResult )
  2445. SGGetCompressBuffer                (SGChannel                 c,
  2446.                                  short *                depth,
  2447.                                  Rect *                    compressSize)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0114, 0x7000, 0xA82A);
  2448.  
  2449. EXTERN_API( ComponentResult )
  2450. SGGetBufferInfo                    (SGChannel                 c,
  2451.                                  short                     bufferNum,
  2452.                                  PixMapHandle *            bufferPM,
  2453.                                  Rect *                    bufferRect,
  2454.                                  GWorldPtr *            compressBuffer,
  2455.                                  Rect *                    compressBufferRect)                    FIVEWORDINLINE(0x2F3C, 0x0012, 0x0115, 0x7000, 0xA82A);
  2456.  
  2457. EXTERN_API( ComponentResult )
  2458. SGSetUseScreenBuffer            (SGChannel                 c,
  2459.                                  Boolean                 useScreenBuffer)                    FIVEWORDINLINE(0x2F3C, 0x0002, 0x0116, 0x7000, 0xA82A);
  2460.  
  2461. EXTERN_API( ComponentResult )
  2462. SGGetUseScreenBuffer            (SGChannel                 c,
  2463.                                  Boolean *                useScreenBuffer)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0117, 0x7000, 0xA82A);
  2464.  
  2465. EXTERN_API( ComponentResult )
  2466. SGGrabCompressComplete            (SGChannel                 c,
  2467.                                  Boolean *                done,
  2468.                                  SGCompressInfo *        ci,
  2469.                                  TimeRecord *            tr)                                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x0118, 0x7000, 0xA82A);
  2470.  
  2471. EXTERN_API( ComponentResult )
  2472. SGDisplayCompress                (SGChannel                 c,
  2473.                                  Ptr                     dataPtr,
  2474.                                  ImageDescriptionHandle  desc,
  2475.                                  MatrixRecord *            mp,
  2476.                                  RgnHandle                 clipRgn)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0119, 0x7000, 0xA82A);
  2477.  
  2478. EXTERN_API( ComponentResult )
  2479. SGSetFrameRate                    (SGChannel                 c,
  2480.                                  Fixed                     frameRate)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x011A, 0x7000, 0xA82A);
  2481.  
  2482. EXTERN_API( ComponentResult )
  2483. SGGetFrameRate                    (SGChannel                 c,
  2484.                                  Fixed *                frameRate)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x011B, 0x7000, 0xA82A);
  2485.  
  2486.  
  2487. EXTERN_API( ComponentResult )
  2488. SGSetPreferredPacketSize        (SGChannel                 c,
  2489.                                  long                     preferredPacketSizeInBytes)            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0121, 0x7000, 0xA82A);
  2490.  
  2491. EXTERN_API( ComponentResult )
  2492. SGGetPreferredPacketSize        (SGChannel                 c,
  2493.                                  long *                    preferredPacketSizeInBytes)            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0122, 0x7000, 0xA82A);
  2494.  
  2495. EXTERN_API( ComponentResult )
  2496. SGSetUserVideoCompressorList    (SGChannel                 c,
  2497.                                  Handle                 compressorTypes)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0123, 0x7000, 0xA82A);
  2498.  
  2499. EXTERN_API( ComponentResult )
  2500. SGGetUserVideoCompressorList    (SGChannel                 c,
  2501.                                  Handle *                compressorTypes)                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0124, 0x7000, 0xA82A);
  2502.  
  2503. /*** Sequence Grab SOUND CHANNEL Component Stuff ***/
  2504.  
  2505. /*
  2506.     Sound stuff
  2507. */
  2508. EXTERN_API( ComponentResult )
  2509. SGSetSoundInputDriver            (SGChannel                 c,
  2510.                                  ConstStr255Param         driverName)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  2511.  
  2512. EXTERN_API( long )
  2513. SGGetSoundInputDriver            (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0101, 0x7000, 0xA82A);
  2514.  
  2515. EXTERN_API( ComponentResult )
  2516. SGSoundInputDriverChanged        (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0102, 0x7000, 0xA82A);
  2517.  
  2518. EXTERN_API( ComponentResult )
  2519. SGSetSoundRecordChunkSize        (SGChannel                 c,
  2520.                                  long                     seconds)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  2521.  
  2522. EXTERN_API( long )
  2523. SGGetSoundRecordChunkSize        (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0104, 0x7000, 0xA82A);
  2524.  
  2525. EXTERN_API( ComponentResult )
  2526. SGSetSoundInputRate                (SGChannel                 c,
  2527.                                  Fixed                     rate)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  2528.  
  2529. EXTERN_API( Fixed )
  2530. SGGetSoundInputRate                (SGChannel                 c)                                    FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  2531.  
  2532. EXTERN_API( ComponentResult )
  2533. SGSetSoundInputParameters        (SGChannel                 c,
  2534.                                  short                     sampleSize,
  2535.                                  short                     numChannels,
  2536.                                  OSType                 compressionType)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  2537.  
  2538. EXTERN_API( ComponentResult )
  2539. SGGetSoundInputParameters        (SGChannel                 c,
  2540.                                  short *                sampleSize,
  2541.                                  short *                numChannels,
  2542.                                  OSType *                compressionType)                    FIVEWORDINLINE(0x2F3C, 0x000C, 0x0108, 0x7000, 0xA82A);
  2543.  
  2544. EXTERN_API( ComponentResult )
  2545. SGSetAdditionalSoundRates        (SGChannel                 c,
  2546.                                  Handle                 rates)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  2547.  
  2548. EXTERN_API( ComponentResult )
  2549. SGGetAdditionalSoundRates        (SGChannel                 c,
  2550.                                  Handle *                rates)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  2551.  
  2552. /*
  2553.     Text stuff
  2554. */
  2555. EXTERN_API( ComponentResult )
  2556. SGSetFontName                    (SGChannel                 c,
  2557.                                  StringPtr                 pstr)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  2558.  
  2559. EXTERN_API( ComponentResult )
  2560. SGSetFontSize                    (SGChannel                 c,
  2561.                                  short                     fontSize)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0101, 0x7000, 0xA82A);
  2562.  
  2563. EXTERN_API( ComponentResult )
  2564. SGSetTextForeColor                (SGChannel                 c,
  2565.                                  RGBColor *                theColor)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  2566.  
  2567. EXTERN_API( ComponentResult )
  2568. SGSetTextBackColor                (SGChannel                 c,
  2569.                                  RGBColor *                theColor)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  2570.  
  2571. EXTERN_API( ComponentResult )
  2572. SGSetJustification                (SGChannel                 c,
  2573.                                  short                     just)                                FIVEWORDINLINE(0x2F3C, 0x0002, 0x0104, 0x7000, 0xA82A);
  2574.  
  2575. EXTERN_API( ComponentResult )
  2576. SGGetTextReturnToSpaceValue        (SGChannel                 c,
  2577.                                  short *                rettospace)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  2578.  
  2579. EXTERN_API( ComponentResult )
  2580. SGSetTextReturnToSpaceValue        (SGChannel                 c,
  2581.                                  short                     rettospace)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x0106, 0x7000, 0xA82A);
  2582.  
  2583. /*
  2584.     Music stuff
  2585. */
  2586. EXTERN_API( ComponentResult )
  2587. SGGetInstrument                    (SGChannel                 c,
  2588.                                  ToneDescription *        td)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  2589.  
  2590. EXTERN_API( ComponentResult )
  2591. SGSetInstrument                    (SGChannel                 c,
  2592.                                  ToneDescription *        td)                                    FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  2593.  
  2594.  
  2595.  
  2596. enum {
  2597.     sgChannelAtom                = FOUR_CHAR_CODE('chan'),
  2598.     sgChannelSettingsAtom        = FOUR_CHAR_CODE('ctom'),
  2599.     sgChannelDescription        = FOUR_CHAR_CODE('cdsc'),
  2600.     sgChannelSettings            = FOUR_CHAR_CODE('cset')
  2601. };
  2602.  
  2603.  
  2604. enum {
  2605.     sgDeviceNameType            = FOUR_CHAR_CODE('name'),
  2606.     sgUsageType                    = FOUR_CHAR_CODE('use '),
  2607.     sgPlayFlagsType                = FOUR_CHAR_CODE('plyf'),
  2608.     sgClipType                    = FOUR_CHAR_CODE('clip'),
  2609.     sgMatrixType                = FOUR_CHAR_CODE('mtrx'),
  2610.     sgVolumeType                = FOUR_CHAR_CODE('volu')
  2611. };
  2612.  
  2613.  
  2614. enum {
  2615.     sgPanelSettingsAtom            = FOUR_CHAR_CODE('ptom'),
  2616.     sgPanelDescription            = FOUR_CHAR_CODE('pdsc'),
  2617.     sgPanelSettings                = FOUR_CHAR_CODE('pset')
  2618. };
  2619.  
  2620.  
  2621. enum {
  2622.     sgcSoundCompressionType        = FOUR_CHAR_CODE('scmp'),
  2623.     sgcSoundSampleRateType        = FOUR_CHAR_CODE('srat'),
  2624.     sgcSoundChannelCountType    = FOUR_CHAR_CODE('schn'),
  2625.     sgcSoundSampleSizeType        = FOUR_CHAR_CODE('ssiz'),
  2626.     sgcSoundInputType            = FOUR_CHAR_CODE('sinp'),
  2627.     sgcSoundGainType            = FOUR_CHAR_CODE('gain')
  2628. };
  2629.  
  2630.  
  2631. enum {
  2632.     sgcVideoHueType                = FOUR_CHAR_CODE('hue '),
  2633.     sgcVideoSaturationType        = FOUR_CHAR_CODE('satr'),
  2634.     sgcVideoContrastType        = FOUR_CHAR_CODE('trst'),
  2635.     sgcVideoSharpnessType        = FOUR_CHAR_CODE('shrp'),
  2636.     sgcVideoBrigtnessType        = FOUR_CHAR_CODE('brit'),
  2637.     sgcVideoBlackLevelType        = FOUR_CHAR_CODE('blkl'),
  2638.     sgcVideoWhiteLevelType        = FOUR_CHAR_CODE('whtl'),
  2639.     sgcVideoInputType            = FOUR_CHAR_CODE('vinp'),
  2640.     sgcVideoFormatType            = FOUR_CHAR_CODE('vstd'),
  2641.     sgcVideoFilterType            = FOUR_CHAR_CODE('vflt'),
  2642.     sgcVideoRectType            = FOUR_CHAR_CODE('vrct'),
  2643.     sgcVideoDigitizerType        = FOUR_CHAR_CODE('vdig')
  2644. };
  2645.  
  2646.  
  2647. /* UPP call backs */
  2648. enum { uppSCModalFilterProcInfo = 0x00003FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2649. enum { uppSCModalHookProcInfo = 0x00003EE0 };                     /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  2650. enum { uppTweenerDataProcInfo = 0x003FFFF0 };                     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2651. enum { uppDataHCompletionProcInfo = 0x00000BC0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes) */
  2652. enum { uppVdigIntProcInfo = 0x000003C0 };                         /* pascal no_return_value Func(4_bytes, 4_bytes) */
  2653. enum { uppSGDataProcInfo = 0x003BFFE0 };                         /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes) */
  2654. enum { uppSGModalFilterProcInfo = 0x00003FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2655. enum { uppSGGrabBottleProcInfo = 0x00000EF0 };                     /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes) */
  2656. enum { uppSGGrabCompleteBottleProcInfo = 0x00003EF0 };             /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  2657. enum { uppSGDisplayBottleProcInfo = 0x0000FEF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2658. enum { uppSGCompressBottleProcInfo = 0x00000EF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes) */
  2659. enum { uppSGCompressCompleteBottleProcInfo = 0x0000FEF0 };         /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2660. enum { uppSGAddFrameBottleProcInfo = 0x0003FEF0 };                 /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2661. enum { uppSGTransferFrameBottleProcInfo = 0x0000FEF0 };         /* pascal 4_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2662. enum { uppSGGrabCompressCompleteBottleProcInfo = 0x0000FFF0 };     /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2663. enum { uppSGDisplayCompressBottleProcInfo = 0x0003FFF0 };         /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  2664. #define NewSCModalFilterProc(userRoutine)                         (SCModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalFilterProcInfo, GetCurrentArchitecture())
  2665. #define NewSCModalHookProc(userRoutine)                         (SCModalHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalHookProcInfo, GetCurrentArchitecture())
  2666. #define NewTweenerDataProc(userRoutine)                         (TweenerDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture())
  2667. #define NewDataHCompletionProc(userRoutine)                     (DataHCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDataHCompletionProcInfo, GetCurrentArchitecture())
  2668. #define NewVdigIntProc(userRoutine)                             (VdigIntUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppVdigIntProcInfo, GetCurrentArchitecture())
  2669. #define NewSGDataProc(userRoutine)                                 (SGDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDataProcInfo, GetCurrentArchitecture())
  2670. #define NewSGModalFilterProc(userRoutine)                         (SGModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGModalFilterProcInfo, GetCurrentArchitecture())
  2671. #define NewSGGrabBottleProc(userRoutine)                         (SGGrabBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabBottleProcInfo, GetCurrentArchitecture())
  2672. #define NewSGGrabCompleteBottleProc(userRoutine)                 (SGGrabCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompleteBottleProcInfo, GetCurrentArchitecture())
  2673. #define NewSGDisplayBottleProc(userRoutine)                     (SGDisplayBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayBottleProcInfo, GetCurrentArchitecture())
  2674. #define NewSGCompressBottleProc(userRoutine)                     (SGCompressBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressBottleProcInfo, GetCurrentArchitecture())
  2675. #define NewSGCompressCompleteBottleProc(userRoutine)             (SGCompressCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  2676. #define NewSGAddFrameBottleProc(userRoutine)                     (SGAddFrameBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGAddFrameBottleProcInfo, GetCurrentArchitecture())
  2677. #define NewSGTransferFrameBottleProc(userRoutine)                 (SGTransferFrameBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGTransferFrameBottleProcInfo, GetCurrentArchitecture())
  2678. #define NewSGGrabCompressCompleteBottleProc(userRoutine)         (SGGrabCompressCompleteBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGGrabCompressCompleteBottleProcInfo, GetCurrentArchitecture())
  2679. #define NewSGDisplayCompressBottleProc(userRoutine)             (SGDisplayCompressBottleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSGDisplayCompressBottleProcInfo, GetCurrentArchitecture())
  2680. #define CallSCModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refcon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppSCModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refcon))
  2681. #define CallSCModalHookProc(userRoutine, theDialog, itemHit, params, refcon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppSCModalHookProcInfo, (theDialog), (itemHit), (params), (refcon))
  2682. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon)  CALL_EIGHT_PARAMETER_UPP((userRoutine), uppTweenerDataProcInfo, (tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  2683. #define CallDataHCompletionProc(userRoutine, request, refcon, err)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDataHCompletionProcInfo, (request), (refcon), (err))
  2684. #define CallVdigIntProc(userRoutine, flags, refcon)             CALL_TWO_PARAMETER_UPP((userRoutine), uppVdigIntProcInfo, (flags), (refcon))
  2685. #define CallSGDataProc(userRoutine, c, p, len, offset, chRefCon, time, writeType, refCon)  CALL_EIGHT_PARAMETER_UPP((userRoutine), uppSGDataProcInfo, (c), (p), (len), (offset), (chRefCon), (time), (writeType), (refCon))
  2686. #define CallSGModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refCon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppSGModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refCon))
  2687. #define CallSGGrabBottleProc(userRoutine, c, bufferNum, refCon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppSGGrabBottleProcInfo, (c), (bufferNum), (refCon))
  2688. #define CallSGGrabCompleteBottleProc(userRoutine, c, bufferNum, done, refCon)  CALL_FOUR_PARAMETER_UPP((userRoutine), uppSGGrabCompleteBottleProcInfo, (c), (bufferNum), (done), (refCon))
  2689. #define CallSGDisplayBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppSGDisplayBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  2690. #define CallSGCompressBottleProc(userRoutine, c, bufferNum, refCon)  CALL_THREE_PARAMETER_UPP((userRoutine), uppSGCompressBottleProcInfo, (c), (bufferNum), (refCon))
  2691. #define CallSGCompressCompleteBottleProc(userRoutine, c, bufferNum, done, ci, refCon)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppSGCompressCompleteBottleProcInfo, (c), (bufferNum), (done), (ci), (refCon))
  2692. #define CallSGAddFrameBottleProc(userRoutine, c, bufferNum, atTime, scale, ci, refCon)  CALL_SIX_PARAMETER_UPP((userRoutine), uppSGAddFrameBottleProcInfo, (c), (bufferNum), (atTime), (scale), (ci), (refCon))
  2693. #define CallSGTransferFrameBottleProc(userRoutine, c, bufferNum, mp, clipRgn, refCon)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppSGTransferFrameBottleProcInfo, (c), (bufferNum), (mp), (clipRgn), (refCon))
  2694. #define CallSGGrabCompressCompleteBottleProc(userRoutine, c, done, ci, t, refCon)  CALL_FIVE_PARAMETER_UPP((userRoutine), uppSGGrabCompressCompleteBottleProcInfo, (c), (done), (ci), (t), (refCon))
  2695. #define CallSGDisplayCompressBottleProc(userRoutine, c, dataPtr, desc, mp, clipRgn, refCon)  CALL_SIX_PARAMETER_UPP((userRoutine), uppSGDisplayCompressBottleProcInfo, (c), (dataPtr), (desc), (mp), (clipRgn), (refCon))
  2696.  
  2697. /* selectors for component calls */
  2698. enum {
  2699.     kClockGetTimeSelect                                = 0x0001,
  2700.     kClockNewCallBackSelect                            = 0x0002,
  2701.     kClockDisposeCallBackSelect                        = 0x0003,
  2702.     kClockCallMeWhenSelect                            = 0x0004,
  2703.     kClockCancelCallBackSelect                        = 0x0005,
  2704.     kClockRateChangedSelect                            = 0x0006,
  2705.     kClockTimeChangedSelect                            = 0x0007,
  2706.     kClockSetTimeBaseSelect                            = 0x0008,
  2707.     kClockStartStopChangedSelect                    = 0x0009,
  2708.     kClockGetRateSelect                                = 0x000A,
  2709.     kSCGetCompressionExtendedSelect                    = 0x0001,
  2710.     kSCPositionRectSelect                            = 0x0002,
  2711.     kSCPositionDialogSelect                            = 0x0003,
  2712.     kSCSetTestImagePictHandleSelect                    = 0x0004,
  2713.     kSCSetTestImagePictFileSelect                    = 0x0005,
  2714.     kSCSetTestImagePixMapSelect                        = 0x0006,
  2715.     kSCGetBestDeviceRectSelect                        = 0x0007,
  2716.     kSCRequestImageSettingsSelect                    = 0x000A,
  2717.     kSCCompressImageSelect                            = 0x000B,
  2718.     kSCCompressPictureSelect                        = 0x000C,
  2719.     kSCCompressPictureFileSelect                    = 0x000D,
  2720.     kSCRequestSequenceSettingsSelect                = 0x000E,
  2721.     kSCCompressSequenceBeginSelect                    = 0x000F,
  2722.     kSCCompressSequenceFrameSelect                    = 0x0010,
  2723.     kSCCompressSequenceEndSelect                    = 0x0011,
  2724.     kSCDefaultPictHandleSettingsSelect                = 0x0012,
  2725.     kSCDefaultPictFileSettingsSelect                = 0x0013,
  2726.     kSCDefaultPixMapSettingsSelect                    = 0x0014,
  2727.     kSCGetInfoSelect                                = 0x0015,
  2728.     kSCSetInfoSelect                                = 0x0016,
  2729.     kSCNewGWorldSelect                                = 0x0017,
  2730.     kSCSetCompressFlagsSelect                        = 0x0018,
  2731.     kSCGetCompressFlagsSelect                        = 0x0019,
  2732.     kTweenerInitializeSelect                        = 0x0001,
  2733.     kTweenerDoTweenSelect                            = 0x0002,
  2734.     kTweenerResetSelect                                = 0x0003,
  2735.     kTCGetCurrentTimeCodeSelect                        = 0x0101,
  2736.     kTCGetTimeCodeAtTimeSelect                        = 0x0102,
  2737.     kTCTimeCodeToStringSelect                        = 0x0103,
  2738.     kTCTimeCodeToFrameNumberSelect                    = 0x0104,
  2739.     kTCFrameNumberToTimeCodeSelect                    = 0x0105,
  2740.     kTCGetSourceRefSelect                            = 0x0106,
  2741.     kTCSetSourceRefSelect                            = 0x0107,
  2742.     kTCSetTimeCodeFlagsSelect                        = 0x0108,
  2743.     kTCGetTimeCodeFlagsSelect                        = 0x0109,
  2744.     kTCSetDisplayOptionsSelect                        = 0x010A,
  2745.     kTCGetDisplayOptionsSelect                        = 0x010B,
  2746.     kMovieImportHandleSelect                        = 0x0001,
  2747.     kMovieImportFileSelect                            = 0x0002,
  2748.     kMovieImportSetSampleDurationSelect                = 0x0003,
  2749.     kMovieImportSetSampleDescriptionSelect            = 0x0004,
  2750.     kMovieImportSetMediaFileSelect                    = 0x0005,
  2751.     kMovieImportSetDimensionsSelect                    = 0x0006,
  2752.     kMovieImportSetChunkSizeSelect                    = 0x0007,
  2753.     kMovieImportSetProgressProcSelect                = 0x0008,
  2754.     kMovieImportSetAuxiliaryDataSelect                = 0x0009,
  2755.     kMovieImportSetFromScrapSelect                    = 0x000A,
  2756.     kMovieImportDoUserDialogSelect                    = 0x000B,
  2757.     kMovieImportSetDurationSelect                    = 0x000C,
  2758.     kMovieImportGetAuxiliaryDataTypeSelect            = 0x000D,
  2759.     kMovieImportValidateSelect                        = 0x000E,
  2760.     kMovieImportGetFileTypeSelect                    = 0x000F,
  2761.     kMovieImportDataRefSelect                        = 0x0010,
  2762.     kMovieImportGetSampleDescriptionSelect            = 0x0011,
  2763.     kMovieExportToHandleSelect                        = 0x0080,
  2764.     kMovieExportToFileSelect                        = 0x0081,
  2765.     kMovieExportGetAuxiliaryDataSelect                = 0x0083,
  2766.     kMovieExportSetProgressProcSelect                = 0x0084,
  2767.     kMovieExportSetSampleDescriptionSelect            = 0x0085,
  2768.     kMovieExportDoUserDialogSelect                    = 0x0086,
  2769.     kMovieExportGetCreatorTypeSelect                = 0x0087,
  2770.     kTextExportGetDisplayDataSelect                    = 0x0100,
  2771.     kTextExportGetTimeFractionSelect                = 0x0101,
  2772.     kTextExportSetTimeFractionSelect                = 0x0102,
  2773.     kTextExportGetSettingsSelect                    = 0x0103,
  2774.     kTextExportSetSettingsSelect                    = 0x0104,
  2775.     kMIDIImportGetSettingsSelect                    = 0x0100,
  2776.     kMIDIImportSetSettingsSelect                    = 0x0101,
  2777.     kPreviewShowDataSelect                            = 0x0001,
  2778.     kPreviewMakePreviewSelect                        = 0x0002,
  2779.     kPreviewMakePreviewReferenceSelect                = 0x0003,
  2780.     kPreviewEventSelect                                = 0x0004,
  2781.     kDataHGetDataSelect                                = 0x0002,
  2782.     kDataHPutDataSelect                                = 0x0003,
  2783.     kDataHFlushDataSelect                            = 0x0004,
  2784.     kDataHOpenForWriteSelect                        = 0x0005,
  2785.     kDataHCloseForWriteSelect                        = 0x0006,
  2786.     kDataHOpenForReadSelect                            = 0x0008,
  2787.     kDataHCloseForReadSelect                        = 0x0009,
  2788.     kDataHSetDataRefSelect                            = 0x000A,
  2789.     kDataHGetDataRefSelect                            = 0x000B,
  2790.     kDataHCompareDataRefSelect                        = 0x000C,
  2791.     kDataHTaskSelect                                = 0x000D,
  2792.     kDataHScheduleDataSelect                        = 0x000E,
  2793.     kDataHFinishDataSelect                            = 0x000F,
  2794.     kDataHFlushCacheSelect                            = 0x0010,
  2795.     kDataHResolveDataRefSelect                        = 0x0011,
  2796.     kDataHGetFileSizeSelect                            = 0x0012,
  2797.     kDataHCanUseDataRefSelect                        = 0x0013,
  2798.     kDataHGetVolumeListSelect                        = 0x0014,
  2799.     kDataHWriteSelect                                = 0x0015,
  2800.     kDataHPreextendSelect                            = 0x0016,
  2801.     kDataHSetFileSizeSelect                            = 0x0017,
  2802.     kDataHGetFreeSpaceSelect                        = 0x0018,
  2803.     kDataHCreateFileSelect                            = 0x0019,
  2804.     kDataHGetPreferredBlockSizeSelect                = 0x001A,
  2805.     kDataHGetDeviceIndexSelect                        = 0x001B,
  2806.     kDataHIsStreamingDataHandlerSelect                = 0x001C,
  2807.     kDataHGetDataInBufferSelect                        = 0x001D,
  2808.     kDataHGetScheduleAheadTimeSelect                = 0x001E,
  2809.     kDataHSetCacheSizeLimitSelect                    = 0x001F,
  2810.     kDataHGetCacheSizeLimitSelect                    = 0x0020,
  2811.     kDataHGetMovieSelect                            = 0x0021,
  2812.     kDataHAddMovieSelect                            = 0x0022,
  2813.     kDataHUpdateMovieSelect                            = 0x0023,
  2814.     kDataHDoesBufferSelect                            = 0x0024,
  2815.     kDataHGetFileNameSelect                            = 0x0025,
  2816.     kDataHPlaybackHintsSelect                        = 0x0103,
  2817.     kVDGetMaxSrcRectSelect                            = 0x0001,
  2818.     kVDGetActiveSrcRectSelect                        = 0x0002,
  2819.     kVDSetDigitizerRectSelect                        = 0x0003,
  2820.     kVDGetDigitizerRectSelect                        = 0x0004,
  2821.     kVDGetVBlankRectSelect                            = 0x0005,
  2822.     kVDGetMaskPixMapSelect                            = 0x0006,
  2823.     kVDGetPlayThruDestinationSelect                    = 0x0008,
  2824.     kVDUseThisCLUTSelect                            = 0x0009,
  2825.     kVDSetInputGammaValueSelect                        = 0x000A,
  2826.     kVDGetInputGammaValueSelect                        = 0x000B,
  2827.     kVDSetBrightnessSelect                            = 0x000C,
  2828.     kVDGetBrightnessSelect                            = 0x000D,
  2829.     kVDSetContrastSelect                            = 0x000E,
  2830.     kVDSetHueSelect                                    = 0x000F,
  2831.     kVDSetSharpnessSelect                            = 0x0010,
  2832.     kVDSetSaturationSelect                            = 0x0011,
  2833.     kVDGetContrastSelect                            = 0x0012,
  2834.     kVDGetHueSelect                                    = 0x0013,
  2835.     kVDGetSharpnessSelect                            = 0x0014,
  2836.     kVDGetSaturationSelect                            = 0x0015,
  2837.     kVDGrabOneFrameSelect                            = 0x0016,
  2838.     kVDGetMaxAuxBufferSelect                        = 0x0017,
  2839.     kVDGetDigitizerInfoSelect                        = 0x0019,
  2840.     kVDGetCurrentFlagsSelect                        = 0x001A,
  2841.     kVDSetKeyColorSelect                            = 0x001B,
  2842.     kVDGetKeyColorSelect                            = 0x001C,
  2843.     kVDAddKeyColorSelect                            = 0x001D,
  2844.     kVDGetNextKeyColorSelect                        = 0x001E,
  2845.     kVDSetKeyColorRangeSelect                        = 0x001F,
  2846.     kVDGetKeyColorRangeSelect                        = 0x0020,
  2847.     kVDSetDigitizerUserInterruptSelect                = 0x0021,
  2848.     kVDSetInputColorSpaceModeSelect                    = 0x0022,
  2849.     kVDGetInputColorSpaceModeSelect                    = 0x0023,
  2850.     kVDSetClipStateSelect                            = 0x0024,
  2851.     kVDGetClipStateSelect                            = 0x0025,
  2852.     kVDSetClipRgnSelect                                = 0x0026,
  2853.     kVDClearClipRgnSelect                            = 0x0027,
  2854.     kVDGetCLUTInUseSelect                            = 0x0028,
  2855.     kVDSetPLLFilterTypeSelect                        = 0x0029,
  2856.     kVDGetPLLFilterTypeSelect                        = 0x002A,
  2857.     kVDGetMaskandValueSelect                        = 0x002B,
  2858.     kVDSetMasterBlendLevelSelect                    = 0x002C,
  2859.     kVDSetPlayThruDestinationSelect                    = 0x002D,
  2860.     kVDSetPlayThruOnOffSelect                        = 0x002E,
  2861.     kVDSetFieldPreferenceSelect                        = 0x002F,
  2862.     kVDGetFieldPreferenceSelect                        = 0x0030,
  2863.     kVDPreflightDestinationSelect                    = 0x0032,
  2864.     kVDPreflightGlobalRectSelect                    = 0x0033,
  2865.     kVDSetPlayThruGlobalRectSelect                    = 0x0034,
  2866.     kVDSetInputGammaRecordSelect                    = 0x0035,
  2867.     kVDGetInputGammaRecordSelect                    = 0x0036,
  2868.     kVDSetBlackLevelValueSelect                        = 0x0037,
  2869.     kVDGetBlackLevelValueSelect                        = 0x0038,
  2870.     kVDSetWhiteLevelValueSelect                        = 0x0039,
  2871.     kVDGetWhiteLevelValueSelect                        = 0x003A,
  2872.     kVDGetVideoDefaultsSelect                        = 0x003B,
  2873.     kVDGetNumberOfInputsSelect                        = 0x003C,
  2874.     kVDGetInputFormatSelect                            = 0x003D,
  2875.     kVDSetInputSelect                                = 0x003E,
  2876.     kVDGetInputSelect                                = 0x003F,
  2877.     kVDSetInputStandardSelect                        = 0x0040,
  2878.     kVDSetupBuffersSelect                            = 0x0041,
  2879.     kVDGrabOneFrameAsyncSelect                        = 0x0042,
  2880.     kVDDoneSelect                                    = 0x0043,
  2881.     kVDSetCompressionSelect                            = 0x0044,
  2882.     kVDCompressOneFrameAsyncSelect                    = 0x0045,
  2883.     kVDCompressDoneSelect                            = 0x0046,
  2884.     kVDReleaseCompressBufferSelect                    = 0x0047,
  2885.     kVDGetImageDescriptionSelect                    = 0x0048,
  2886.     kVDResetCompressSequenceSelect                    = 0x0049,
  2887.     kVDSetCompressionOnOffSelect                    = 0x004A,
  2888.     kVDGetCompressionTypesSelect                    = 0x004B,
  2889.     kVDSetTimeBaseSelect                            = 0x004C,
  2890.     kVDSetFrameRateSelect                            = 0x004D,
  2891.     kVDGetDataRateSelect                            = 0x004E,
  2892.     kVDGetSoundInputDriverSelect                    = 0x004F,
  2893.     kVDGetDMADepthsSelect                            = 0x0050,
  2894.     kVDGetPreferredTimeScaleSelect                    = 0x0051,
  2895.     kVDReleaseAsyncBuffersSelect                    = 0x0052,
  2896.     kVDSetDataRateSelect                            = 0x0054,
  2897.     kVDGetTimeCodeSelect                            = 0x0055,
  2898.     kVDUseSafeBuffersSelect                            = 0x0056,
  2899.     kVDGetSoundInputSourceSelect                    = 0x0057,
  2900.     kVDGetCompressionTimeSelect                        = 0x0058,
  2901.     kVDSetPreferredPacketSizeSelect                    = 0x0059,
  2902.     kSGInitializeSelect                                = 0x0001,
  2903.     kSGSetDataOutputSelect                            = 0x0002,
  2904.     kSGGetDataOutputSelect                            = 0x0003,
  2905.     kSGSetGWorldSelect                                = 0x0004,
  2906.     kSGGetGWorldSelect                                = 0x0005,
  2907.     kSGNewChannelSelect                                = 0x0006,
  2908.     kSGDisposeChannelSelect                            = 0x0007,
  2909.     kSGStartPreviewSelect                            = 0x0010,
  2910.     kSGStartRecordSelect                            = 0x0011,
  2911.     kSGIdleSelect                                    = 0x0012,
  2912.     kSGStopSelect                                    = 0x0013,
  2913.     kSGPauseSelect                                    = 0x0014,
  2914.     kSGPrepareSelect                                = 0x0015,
  2915.     kSGReleaseSelect                                = 0x0016,
  2916.     kSGGetMovieSelect                                = 0x0017,
  2917.     kSGSetMaximumRecordTimeSelect                    = 0x0018,
  2918.     kSGGetMaximumRecordTimeSelect                    = 0x0019,
  2919.     kSGGetStorageSpaceRemainingSelect                = 0x001A,
  2920.     kSGGetTimeRemainingSelect                        = 0x001B,
  2921.     kSGGrabPictSelect                                = 0x001C,
  2922.     kSGGetLastMovieResIDSelect                        = 0x001D,
  2923.     kSGSetFlagsSelect                                = 0x001E,
  2924.     kSGGetFlagsSelect                                = 0x001F,
  2925.     kSGSetDataProcSelect                            = 0x0020,
  2926.     kSGNewChannelFromComponentSelect                = 0x0021,
  2927.     kSGDisposeDeviceListSelect                        = 0x0022,
  2928.     kSGAppendDeviceListToMenuSelect                    = 0x0023,
  2929.     kSGSetSettingsSelect                            = 0x0024,
  2930.     kSGGetSettingsSelect                            = 0x0025,
  2931.     kSGGetIndChannelSelect                            = 0x0026,
  2932.     kSGUpdateSelect                                    = 0x0027,
  2933.     kSGGetPauseSelect                                = 0x0028,
  2934.     kSGSettingsDialogSelect                            = 0x0029,
  2935.     kSGGetAlignmentProcSelect                        = 0x002A,
  2936.     kSGSetChannelSettingsSelect                        = 0x002B,
  2937.     kSGGetChannelSettingsSelect                        = 0x002C,
  2938.     kSGGetModeSelect                                = 0x002D,
  2939.     kSGSetDataRefSelect                                = 0x002E,
  2940.     kSGGetDataRefSelect                                = 0x002F,
  2941.     kSGNewOutputSelect                                = 0x0030,
  2942.     kSGDisposeOutputSelect                            = 0x0031,
  2943.     kSGSetOutputFlagsSelect                            = 0x0032,
  2944.     kSGSetChannelOutputSelect                        = 0x0033,
  2945.     kSGGetDataOutputStorageSpaceRemainingSelect        = 0x0034,
  2946.     kSGHandleUpdateEventSelect                        = 0x0035,
  2947.     kSGWriteMovieDataSelect                            = 0x0100,
  2948.     kSGAddFrameReferenceSelect                        = 0x0101,
  2949.     kSGGetNextFrameReferenceSelect                    = 0x0102,
  2950.     kSGGetTimeBaseSelect                            = 0x0103,
  2951.     kSGSortDeviceListSelect                            = 0x0104,
  2952.     kSGAddMovieDataSelect                            = 0x0105,
  2953.     kSGChangedSourceSelect                            = 0x0106,
  2954.     kSGSetChannelUsageSelect                        = 0x0080,
  2955.     kSGGetChannelUsageSelect                        = 0x0081,
  2956.     kSGSetChannelBoundsSelect                        = 0x0082,
  2957.     kSGGetChannelBoundsSelect                        = 0x0083,
  2958.     kSGSetChannelVolumeSelect                        = 0x0084,
  2959.     kSGGetChannelVolumeSelect                        = 0x0085,
  2960.     kSGGetChannelInfoSelect                            = 0x0086,
  2961.     kSGSetChannelPlayFlagsSelect                    = 0x0087,
  2962.     kSGGetChannelPlayFlagsSelect                    = 0x0088,
  2963.     kSGSetChannelMaxFramesSelect                    = 0x0089,
  2964.     kSGGetChannelMaxFramesSelect                    = 0x008A,
  2965.     kSGSetChannelRefConSelect                        = 0x008B,
  2966.     kSGSetChannelClipSelect                            = 0x008C,
  2967.     kSGGetChannelClipSelect                            = 0x008D,
  2968.     kSGGetChannelSampleDescriptionSelect            = 0x008E,
  2969.     kSGGetChannelDeviceListSelect                    = 0x008F,
  2970.     kSGSetChannelDeviceSelect                        = 0x0090,
  2971.     kSGSetChannelMatrixSelect                        = 0x0091,
  2972.     kSGGetChannelMatrixSelect                        = 0x0092,
  2973.     kSGGetChannelTimeScaleSelect                    = 0x0093,
  2974.     kSGChannelPutPictureSelect                        = 0x0094,
  2975.     kSGChannelSetRequestedDataRateSelect            = 0x0095,
  2976.     kSGChannelGetRequestedDataRateSelect            = 0x0096,
  2977.     kSGChannelSetDataSourceNameSelect                = 0x0097,
  2978.     kSGChannelGetDataSourceNameSelect                = 0x0098,
  2979.     kSGInitChannelSelect                            = 0x0180,
  2980.     kSGWriteSamplesSelect                            = 0x0181,
  2981.     kSGGetDataRateSelect                            = 0x0182,
  2982.     kSGAlignChannelRectSelect                        = 0x0183,
  2983.     kSGPanelGetDitlSelect                            = 0x0200,
  2984.     kSGPanelGetTitleSelect                            = 0x0201,
  2985.     kSGPanelCanRunSelect                            = 0x0202,
  2986.     kSGPanelInstallSelect                            = 0x0203,
  2987.     kSGPanelEventSelect                                = 0x0204,
  2988.     kSGPanelItemSelect                                = 0x0205,
  2989.     kSGPanelRemoveSelect                            = 0x0206,
  2990.     kSGPanelSetGrabberSelect                        = 0x0207,
  2991.     kSGPanelSetResFileSelect                        = 0x0208,
  2992.     kSGPanelGetSettingsSelect                        = 0x0209,
  2993.     kSGPanelSetSettingsSelect                        = 0x020A,
  2994.     kSGPanelValidateInputSelect                        = 0x020B,
  2995.     kSGPanelSetEventFilterSelect                    = 0x020C,
  2996.     kSGGetSrcVideoBoundsSelect                        = 0x0100,
  2997.     kSGSetVideoRectSelect                            = 0x0101,
  2998.     kSGGetVideoRectSelect                            = 0x0102,
  2999.     kSGGetVideoCompressorTypeSelect                    = 0x0103,
  3000.     kSGSetVideoCompressorTypeSelect                    = 0x0104,
  3001.     kSGSetVideoCompressorSelect                        = 0x0105,
  3002.     kSGGetVideoCompressorSelect                        = 0x0106,
  3003.     kSGGetVideoDigitizerComponentSelect                = 0x0107,
  3004.     kSGSetVideoDigitizerComponentSelect                = 0x0108,
  3005.     kSGVideoDigitizerChangedSelect                    = 0x0109,
  3006.     kSGSetVideoBottlenecksSelect                    = 0x010A,
  3007.     kSGGetVideoBottlenecksSelect                    = 0x010B,
  3008.     kSGGrabFrameSelect                                = 0x010C,
  3009.     kSGGrabFrameCompleteSelect                        = 0x010D,
  3010.     kSGDisplayFrameSelect                            = 0x010E,
  3011.     kSGCompressFrameSelect                            = 0x010F,
  3012.     kSGCompressFrameCompleteSelect                    = 0x0110,
  3013.     kSGAddFrameSelect                                = 0x0111,
  3014.     kSGTransferFrameForCompressSelect                = 0x0112,
  3015.     kSGSetCompressBufferSelect                        = 0x0113,
  3016.     kSGGetCompressBufferSelect                        = 0x0114,
  3017.     kSGGetBufferInfoSelect                            = 0x0115,
  3018.     kSGSetUseScreenBufferSelect                        = 0x0116,
  3019.     kSGGetUseScreenBufferSelect                        = 0x0117,
  3020.     kSGGrabCompressCompleteSelect                    = 0x0118,
  3021.     kSGDisplayCompressSelect                        = 0x0119,
  3022.     kSGSetFrameRateSelect                            = 0x011A,
  3023.     kSGGetFrameRateSelect                            = 0x011B,
  3024.     kSGSetPreferredPacketSizeSelect                    = 0x0121,
  3025.     kSGGetPreferredPacketSizeSelect                    = 0x0122,
  3026.     kSGSetUserVideoCompressorListSelect                = 0x0123,
  3027.     kSGGetUserVideoCompressorListSelect                = 0x0124,
  3028.     kSGSetSoundInputDriverSelect                    = 0x0100,
  3029.     kSGGetSoundInputDriverSelect                    = 0x0101,
  3030.     kSGSoundInputDriverChangedSelect                = 0x0102,
  3031.     kSGSetSoundRecordChunkSizeSelect                = 0x0103,
  3032.     kSGGetSoundRecordChunkSizeSelect                = 0x0104,
  3033.     kSGSetSoundInputRateSelect                        = 0x0105,
  3034.     kSGGetSoundInputRateSelect                        = 0x0106,
  3035.     kSGSetSoundInputParametersSelect                = 0x0107,
  3036.     kSGGetSoundInputParametersSelect                = 0x0108,
  3037.     kSGSetAdditionalSoundRatesSelect                = 0x0109,
  3038.     kSGGetAdditionalSoundRatesSelect                = 0x010A,
  3039.     kSGSetFontNameSelect                            = 0x0100,
  3040.     kSGSetFontSizeSelect                            = 0x0101,
  3041.     kSGSetTextForeColorSelect                        = 0x0102,
  3042.     kSGSetTextBackColorSelect                        = 0x0103,
  3043.     kSGSetJustificationSelect                        = 0x0104,
  3044.     kSGGetTextReturnToSpaceValueSelect                = 0x0105,
  3045.     kSGSetTextReturnToSpaceValueSelect                = 0x0106,
  3046.     kSGGetInstrumentSelect                            = 0x0100,
  3047.     kSGSetInstrumentSelect                            = 0x0101
  3048. };
  3049.  
  3050.  
  3051.  
  3052. #if PRAGMA_STRUCT_ALIGN
  3053.     #pragma options align=reset
  3054. #elif PRAGMA_STRUCT_PACKPUSH
  3055.     #pragma pack(pop)
  3056. #elif PRAGMA_STRUCT_PACK
  3057.     #pragma pack()
  3058. #endif
  3059.  
  3060. #ifdef PRAGMA_IMPORT_OFF
  3061. #pragma import off
  3062. #elif PRAGMA_IMPORT
  3063. #pragma import reset
  3064. #endif
  3065.  
  3066. #ifdef __cplusplus
  3067. }
  3068. #endif
  3069.  
  3070. #endif /* __QUICKTIMECOMPONENTS__ */
  3071.  
  3072.